Java中 Json、String、jsonObject、jsonArray格式之间互相转换

每次遇到json转换的问题吗,都是一顿百度,倒不如自己写一篇,后期遇到自己查看方便

目录

一、依赖

二、JSON各种转换

1.json格式的字符串 转 JSONObject

2.json格式的字符串 转 JSONArray

3. json格式的字符串 转 JSONObject 、JSONArray

4. json格式的字符串 转 实体类(javaBean)

5.map格式 转 JSONObject

6.实体类转json

7.实体类转成实体类

三、提取JsonObject(或 Map)中的 key-value 值

1.获取 JsonObject 的key

2.获取JsonObject 中 School的 key-value 值


一、依赖

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

二、JSON各种转换

1.json格式的字符串 转 JSONObject

{
    "name": "张三",
    "age": "18"
}
public static void testJson(String str) {
    JSONObject obj = JSON.parseObject(str);
 
    // 测试结果
    System.out.println(obj);
}

2.json格式的字符串 转 JSONArray

[

  {
      "name": "张三",
      "age": "18"
  },

  {
      "name": "李四",
      "age": "19"
  }

]
public static void testJson(String str) {        
    JSONArray array = JSON.parseArray(str);
 
    // 测试结果
    for(Object object : array){
        JSONObject obj = (JSONObject)object;
        System.out.println(obj);
    }

3. json格式的字符串 转 JSONObject 、JSONArray

[
  "name":{
        "name1": "张三",
        "name2": "李四"
  }
]
public static void testJson(String str) {
    JSONObject jsonObj = JSON.parseObject(str);
    JSONArray array = JSON.parseArray(jsonObj.getString("name"));
 
    // 测试结果
    for(Object object:array){
        JSONObject obj = (JSONObject)object;
        System.out.println(obj);
    }
}

4. json格式的字符串 转 实体类(javaBean)

  {
      "name": "张三",
      "age": "18"
  }
// JaveBean
public class Persion {
	private String name;
	private int age;

    //get、set方法自取

}
public static void testJson(String str) {
    Persion persion = JSON.parseObject(str, new TypeReference<Persion>(){});
 
    // 测试结果
    System.out.println("name:" + persion.getName() + " , " + "age:" + persion.getAge());
}

5.map格式 转 JSONObject

 {
      name = 张三,
      age = 18
  }
public static void testJson(String str) {
    Map<String, Object> map = new HashMap<String, Object>();
    map.put("name","张三");
    map.put("age","18");
 
    JSONObject jsonObj=new JSONObject(map);
 
    // 测试结果
    System.out.println(jsonObj.toString());
}

6.实体类转json

//形参的Student 实体类自取

public static void testJson(Student student) {
    String str = JSONObject.toJSONString(student);
    // 测试结果
    System.out.println(str);
}

7.实体类转成实体类

//Student1 实体类自取
public static void testJson(Student1 student1) {
    String str = JSONObject.toJSONString(student);
	Student2 student2 = JSON.parseObject(str, new TypeReference<Student2>(){});
}

也可以直接使用这个

BeanUtils.copyProperties(oldBean,newBean);

三、提取JsonObject(或 Map)中的 key-value 值

//需要转换的数据
{
    "school": { "小学": "4", "初中": "2",  "高中": "1"  },
    "hospital": { "一甲": "3",  "二甲": "1" },
    "supermarket": { "万达": "2", "万象": "1" }
}

1.获取 JsonObject 的key


public void testJson(JSONObject params){
	Map<String, Object> map = params;
	Set<String> keys = map.keySet();
	for (String key : keys) {
		System.out.println(key+"-----"+map.get(key));
	}
}


//输出:
supermarket-----{万达=2, 万象=1}
school-----{小学=4, 初中=2, 高中=1}
hospital-----{一甲=3, 二甲=1}

2.获取JsonObject 中 School的 key-value 值

public void testJson(JSONObject params){
	Map<String, Object> map = params;
	// {"小学":"4","初中":"2","高中":"1"}
	Map<String, String> m1 = (Map<String, String>) map.get("school");
	Set<String> keys = m1.keySet();
	for (String key : keys) {
		System.out.println(key+" ----- "+m1.get(key));
	}
}

//输出
小学 ----- 4
初中 ----- 2
高中 ----- 1

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值