首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >什么是Json,如何使用?

什么是Json,如何使用?

作者头像
Twcat_tree
发布2022-12-05 17:00:33
发布2022-12-05 17:00:33
1.5K00
代码可运行
举报
文章被收录于专栏:二猫の家二猫の家
运行总次数:0
代码可运行

JavaScript Object Notation:javascript的对象表示法。

这是一种能传递对象的语法,可以是键值对,数组,以及其他对象。     轻量级的数据传输方法。

json格式:

{ key :{ key : [ { key :value ,key :value } ] } },灵活组合。

{ } : 表示一个集合,容器   [ ] :里面装数组,集合   键值对之间用冒号隔开,数组的元素用逗号隔开。

他不是面向对象的,但是较于javascript他更具有分析性,复用性。前后端都可使用。   json的值可以是:int float string boolean 数组 对象。

json方法:   JSON.parse():该方法用于解析JSON类型的字符串并且返回对应的值。   JSON.stringify():该方法同样返回与指定值对应的JSON字符串。

JavaScript可以用eval()方法将json文本转换为javascript对象。   var obj = eval ( " (" + json + " ) " );

注意:javascript的eval()方法可编译执行任何javascript代码但是这并不安全,如果使用json解析器将json转换为javascript就会更安全

json格式的转换,对象,集合:(官方的json包和阿里巴巴的json包)

官方:不能一次拿到对象的所有属性,一次只能取单一的值:     eg: user对象:有name id       转换 JSONObject userJson = new JSONObject(user);       获取 String userName = userJson.getString(“name”);         int userId = userJson.getInt(“age”);       user集合list       转换:JSONArray userJsonArray = new JSONArray(list);       获取:JSONObiect userObj = userJsonArray.getJSONObject(0);   阿里巴巴:fastJson包     eg:user对象:可以直接获得该对象       转换:String userFast = JSON.toJSONString(user);----json字符串

获取:User u1 = JSONObject.parseObject(fastUser,User.class);       User集合 : 可以直接获得该对象集合       转换: String fastList = new JSONArray(list);       获取: list fastList = JSONArray.parseArray(fastList,User.class)

注意:测试的时候注意方法名,二者方法名一样,需要全名引用。

代码语言:javascript
代码运行次数:0
运行
复制
import com.alibaba.fastjson.JSON;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import java.util.ArrayList;
import java.util.List;

public class TestJson {
    public static void main(String[] args) throws JSONException {

        List<User> list = new ArrayList<>();

        User user1 = new User(12,"张三");
        User user2 = new User(13,"李四");
        list.add(user1);
        list.add(user2);

        System.out.println("---------------------------");
        System.out.println("            官方jar包测试");
        //org.json   转换对象测试
        JSONObject userObj = new JSONObject(user1);
        //getString需要异常抛出防止key值不存在
        System.out.println("拿到该对象的id值: "+userObj.getString("id"));
        //org.json  转换集合测试
        JSONArray userList = new JSONArray(list);
        //get方法拿到集合下标,需要抛出下标不存在的异常
        System.out.println("拿到该集合下标为0的值: "+userList.get(0));
        User user3 = (User) userList.get(0);
        System.out.println("输出对象:"+user3.toString());
        String userStr = new JSONObject(user1).toString();
        System.out.println("直接打印对象:"+user1.toString());
        System.out.println("对象转换json字符串:"+userStr);
        System.out.println("直接打印集合: "+list);
        //对象转json字符串
        String userlistStr = new JSONArray(list).toString();
        System.out.println("集合转换json字符串: " + userlistStr);
        System.out.println("---------------------------");

        //阿里巴巴的fastJson包测试
        System.out.println("---------------------------");
        System.out.println("            阿里巴巴fastJson包测试");
        //com.alibaba.fastjson包测试  由于方法重名,使用全名
        //直接转换json字符串
        String userFast = JSON.toJSONString(user1);
        System.out.println("fastjson转换对象为json字符串: "+userFast);
        String userlistFast = JSON.toJSONString(list);
        System.out.println("fastjson直接转换集合为json字符串: "+userlistFast);

        //json字符串转换为json对象
        com.alibaba.fastjson.JSONObject userFast2 = JSON.parseObject(userFast);
        System.out.println("fastjson将json字符串转换的json对象:"+userFast2);
        //json字符串转换为json集合
        com.alibaba.fastjson.JSONArray userlistFast2 = JSON.parseArray(userlistFast);
        System.out.println("fastjson将json字符串转换的json集合:"+userlistFast2);
    }
}
代码语言:javascript
代码运行次数:0
运行
复制
---------------------------
            官方jar包测试
拿到该对象的id值: 12
拿到该集合下标为0的值: User{id=12, name='张三'}
输出对象:User{id=12, name='张三'}
直接打印对象:User{id=12, name='张三'}
对象转换json字符串:{"name":"张三","id":12}
直接打印集合: [User{id=12, name='张三'}, User{id=13, name='李四'}]
集合转换json字符串: ["User{id=12, name='张三'}","User{id=13, name='李四'}"]
---------------------------
---------------------------
            阿里巴巴fastJson包测试
fastjson转换对象为json字符串: {"id":12,"name":"张三"}
fastjson直接转换集合为json字符串: [{"id":12,"name":"张三"},{"id":13,"name":"李四"}]
fastjson将json字符串转换的json对象:{"name":"张三","id":12}
fastjson将json字符串转换的json集合:[{"name":"张三","id":12},{"name":"李四","id":13}]
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-10-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档