json的基本使用

一、fastjson.JSON

  <dependency>
      <groupId>com.alibaba</groupId>
      <artifactId>fastjson</artifactId>
      <version>1.2.47</version>
    </dependency>

1.1、java对象->json

1、java中的对象-->json
          User user = new User(1, "张三", "123456");
          String javaJson = JSON.toJSONString(user);
          System.out.println(javaJson);
		  // {"id":1,"password":"123456","username":"张三"}

2、JSON -->对象
        User user = new User(1, "小白", "123456");
        //JSON协议串
        String jsonString = JSON.toJSONString(user);
        System.out.println(jsonString);
        
        //把JSON协议串 转换为java中的对象
        User user1 = JSON.parseObject(jsonString, User.class);
        System.out.println(user1);
        
------------------------------------------	
	{"id":1,"password":"123456","username":"小白"}
    User{id=1, username='小白', password='123456'}

1.2、集合->json

   User user = new User(1, "小1", "123456");
        User user1 = new User(2, "小2", "123456");
        User user2 = new User(3, "小3", "123456");
        List<User>  users=new ArrayList<User>();
        users.add(user);
        users.add(user1);
        users.add(user2);
        String jsonString = JSON.toJSONString(users);
        System.out.println(jsonString);

        //注意:使用parseArray转换List集合时   第二个参数  应该为集合中的泛型的类型
        List<User> userList = JSON.parseArray(jsonString, User.class);
        for (User user3 : userList) {
            System.out.println(user3);
        }
----------------------------------------
[{"id":1,"password":"123456","username":"小1"},
{"id":2,"password":"123456","username":"小2"},
{"id":3,"password":"123456","username":"小3"}]

User{id=1, username='小1', password='123456'}
User{id=2, username='小2', password='123456'}
User{id=3, username='小3', password='123456'}


1.3、数组–>JSON

         String []   names={"张三","李四","王五"};
         String jsonString = JSON.toJSONString(names);
         System.out.println(jsonString);
		
		// ["张三","李四","王五"]

1.4 List装对象–>JSON

	     User user = new User(1, "小1", "123456");
        User user1 = new User(2, "小2", "123456");
        User user2 = new User(3, "小3", "123456");
        Set<User> users=new HashSet<User>();
        users.add(user);
        users.add(user1);
        users.add(user2);
        String jsonString = JSON.toJSONString(users);
        System.out.println(jsonString);

        //注意:使用parseArray转换List集合时   第二个参数  应该为集合的类型
        Set set = JSON.parseObject(jsonString, Set.class);
        for (Object o : set) {
            //注意:json协议串转Set集合时  里边的元素不能进行强转
            System.out.println(o);
        }
-----------------------------------
[{"id":1,"password":"123456","username":"小1"},
{"id":2,"password":"123456","username":"小2"},
{"id":3,"password":"123456","username":"小3"}]

{"password":"123456","id":3,"username":"小3"}
{"password":"123456","id":1,"username":"小1"}
{"password":"123456","id":2,"username":"小2"}

1.5 Map集合–>JSON

 //创建Map集合
        Map<Integer,String> maps= new HashMap<Integer,String>();
        maps.put(1,"小黑");
        maps.put(2,"小白");
        //Map集合转JSON
        String jsonString = JSON.toJSONString(maps);
        System.out.println(jsonString);

        Map map = JSON.parseObject(jsonString, Map.class);
        //获取到所有的键
        Set set = map.keySet();
        for (Object o : set) {
            System.out.println(o+"=============="+map.get(o));
        }
-------------------------------------------------------
		{1:"小黑",2:"小白"}
		1==============小黑
		2==============小白

二、gson.Gson

2.1 对象<—>json

       User user = new User(1, "张三", "123456");
        //创建GSON对象
        Gson gson = new Gson();
        //toJson方法  可以把对象   Set集合  List集合   Map集合  转换为JSON协议串
        String json = gson.toJson(user);
        System.out.println(json);

        //fromJSON 把JSON协议串 转换为  对象  List集合  Set集合
        User user1 = gson.fromJson(json, User.class);
        System.out.println(user1);
--------------------------------
	{"id":1,"username":"张三","password":"123456"}
    User{id=1, username='张三', password='123456'}

三、jsonObjet的使用

  • pom
       <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.28</version>
        </dependency>
  • JSONObject只是一种数据结构,可以理解为JSON格式的数据结构(key-value 结构)
  • 可以使用put方法给json对象添加元素。
  • JSONObject可以很方便的转换成字符串,也可以很方便的把其他对象转换成JSONObject对象。

3.1、通过原生生成json数据格式。

       JSONObject jsonObject = new JSONObject();
	        jsonObject.put("name", "张三");
	        jsonObject.put("age", 18.4);
	        jsonObject.put("birthday", "1900-20-03");
	        jsonObject.put("majar", new String[]{"哈哈", "嘿嘿"});
	        jsonObject.put("null", null);
	        jsonObject.put("house", false);
	        
        System.out.println(jsonObject.toString());
---------------------------------------------------
{"birthday":"1900-20-03","name":"张三","majar":["哈哈","嘿嘿"],"house":false,"age":18.4}

3.2、hashMap数据结构生成

        HashMap<String, Object> zhangsan = new HashMap<>();
            zhangsan.put("name", "张三");
            zhangsan.put("age", 18.4);
            zhangsan.put("birthday", "1900-20-03");
            zhangsan.put("majar", new String[]{"哈哈", "嘿嘿"});
            zhangsan.put("null", null);
            zhangsan.put("house", false);
        System.out.println(new JSONObject(zhangsan).toString());
  
-----------------------------------------------------------
{"birthday":"1900-20-03","name":"张三","majar":["哈哈","嘿嘿"],"house":false,"age":18.4}

  

3.3、通过实体生成json

        User user = new User(1, "小1", "123456");
        //生成json格式
        System.out.println(JSON.toJSON(user));

        //对象转成JSONObject:string
        String stuString = JSONObject.toJSONString(user);
        System.out.println(stuString);

---------------------------------------------------------
		{"password":"123456","id":1,"username":"小1"}
		{"id":1,"password":"123456","username":"小1"}

3.4、JSON字符串转换成jsonObject

         String studentString = "{\"id\":1,\"age\":2,\"name\":\"zhang\"}";

        //JSON字符串转换成JSON对象
        JSONObject jsonObject1 = JSONObject.parseObject(studentString);
        System.out.println(jsonObject1);
        System.out.println(jsonObject1.get("name"));
-------------------------------------------------------
		{"name":"zhang","id":1,"age":2}
		zhang

3.5、 list对象转listJson

     ArrayList<User> userLsit = new ArrayList<>();
        User user1 = new User(1, "小1", "123");
        User user2 = new User(2, "小2", "1234");
        User user3 = new User(3, "小3", "123456");

        userLsit.add(user1);
        userLsit.add(user2);
        userLsit.add(user2);

        //list转json字符串
        String string = JSON.toJSON(userLsit).toString();
        System.out.println(string);

        //json字符串转listJson格式
        JSONArray jsonArray = JSONObject.parseArray(string);
        System.out.println(jsonArray);

  for (int i = 0; i < jsonArray.size(); i++) {
            //Object o = (User)jsonArray.get(i);
            System.out.println(jsonArray.get(i)+"=="+jsonArray.getClass());
        }
----------------------------------------------------------
		[{"password":"123","id":1,"username":"小1"},
		{"password":"1234","id":2,"username":"小2"},
		{"password":"1234","id":2,"username":"小2"}]
		
		[{"password":"123","id":1,"username":"小1"},
		{"password":"1234","id":2,"username":"小2"},
		{"password":"1234","id":2,"username":"小2"}]

{"password":"123","id":1,"username":"小1"}==class com.alibaba.fastjson.JSONArray
{"password":"1234","id":2,"username":"小2"}==class com.alibaba.fastjson.JSONArray
{"password":"1234","id":2,"username":"小2"}==class com.alibaba.fastjson.JSONArray

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值