csjoz11

导航

获取JSON里面result的值 以及将里面的(List数组或对象)转换出来并读取到

fastjson是阿里巴巴开源产品之一,解析速度快

 
在JAVA中怎么用fastjson取下面代码field_data_list的值{
"errcode": 0,
"errmsg": "ok",
"result": [
{
"corp_id": "ding49d4cf08f3bcb09135c2f4657eb6378f",
"field_data_list": [
{
"field_code": "sys03-major",
"field_name": "所学专业",
"field_value_list": [
{
"item_index": 0,
"label": "市场营销",
"value": "市场营销"
}
],
"group_id": "sys03"
},
{
"field_code": "sys02-politicalStatus",
"field_name": "政治面貌",
"field_value_list": [
{
"item_index": 0,
"label": "群众",
"value": "3"
}
],
"group_id": "sys02"
}
],
"userid": "16762580486732240"
}
],
"success": true,
"request_id": "15sv9p8iqv1cl"
}
 
 
在Java中,可以使用fastjson库来解析JSON数据并获取到field_data_list的值。以下是使用fastjson库的示例代码:
 
java
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
 
public class Main {
    public static void main(String[] args) {
        String jsonString = "{\"errcode\": 0,\"errmsg\": \"ok\",\"result\": [{\"corp_id\": \"ding49d4cf08f3bcb09135c2f4657eb6378f\",\"field_data_list\": [{\"field_code\": \"sys03-major\",\"field_name\": \"所学专业\",\"field_value_list\": [{\"item_index\": 0,\"label\": \"市场营销\",\"value\": \"市场营销\"}],\"group_id\": \"sys03\"},{\"field_code\": \"sys02-politicalStatus\",\"field_name\": \"政治面貌\",\"field_value_list\": [{\"item_index\": 0,\"label\": \"群众\",\"value\": \"3\"}],\"group_id\": \"sys02\"}],\"userid\": \"16762580486732240\"}],\"success\": true,\"request_id\": \"15sv9p8iqv1cl\"}";
 
        // 将JSON字符串解析为JSONObject对象
        JSONObject jsonObject = JSONObject.parseObject(jsonString);
 
        // 获取result字段的值,是一个JSONArray
        JSONArray resultArray = jsonObject.getJSONArray("result");
 
        // 获取result数组第一个元素
        JSONObject resultObject = resultArray.getJSONObject(0);
 
        // 获取field_data_list字段的值,是一个JSONArray
        JSONArray fieldDataList = resultObject.getJSONArray("field_data_list");
 
        // 遍历field_data_list数组,获取每个元素的值
        for (int i = 0; i < fieldDataList.size(); i++) {
            // 获取每个field_data_list元素的值
            JSONObject fieldData = fieldDataList.getJSONObject(i);
            // 在这里处理每个field_data_list元素的值
            System.out.println(fieldData);
        }
    }
}
上面的示例代码使用了fastjson库来解析JSON字符串,并以JSONObject和JSONArray对象的形式访问和处理其中的字段值。你可以根据需要进一步处理field_data_list的值。
 
 
 
 
在JAVA中怎么用fastjson取下面代码label的值"field_value_list": [
                        {
                            "item_index": 0,
                            "label": "市场营销",
                            "value": "市场营销"
                        }
                    ]
 
在Java中,你可以使用Fastjson库来解析这个JSON对象。首先你需要将这个JSON字符串解析为Java对象。这个JSON对象是一个数组,数组中的每个元素都是一个包含"item_index","label"和"value"键的对象。
 
下面是如何使用Fastjson来解析这个JSON字符串并获取"label"的值:
 
java
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
 
public class Main {
    public static void main(String[] args) {
        String jsonString = "[{\"item_index\": 0, \"label\": \"市场营销\", \"value\": \"市场营销\"}]";
 
        JSONArray jsonArray = JSON.parseArray(jsonString);
        for (Object obj : jsonArray) {
            JSONObject jsonObject = (JSONObject) obj;
            String label = jsonObject.getString("label");
            System.out.println(label);  // 输出 "市场营销"
        }
    }
}

 

 

下载地址(maven仓库):https://mvnrepository.com/artifact/com.alibaba/fastjson/1.2.53

// 当待解析的JSON字符串是简单对象类型的,即用大括号包围,此时采用JSONObject对象来处理:
public void test(){
        String str = "{\"success\":\"true\",\"returnAddress\":\"123\"}";
        JSONObject jsonObject=JSON.parseObject(str);
        String returnAddress = jsonObject.getString("success");
        System.out.println(returnAddress);
 }                                                        
1
2
3
4
5
6
7

 


// 对于大括号包含小括号时,逐层解析
public void test1(){
        String result = "{\"success\":\"true\",\"data\":{\"shopId\":\"123\"}}";
        JSONObject shop_user =JSON.parseObject(result);
        String str= JSON.parseObject(shop_user.getString("data")).getString("shopId");
        System.out.println(str);
}
1
2
3
4
5
6
7
// 当待解析的JSON字符串是简单数组类型的,即用中括号包围,此时采用JSONArray对象来处理:
    public void test2() {       
        String jsonStr = "['你好','我不好','很好','不怎么好']";        
        JSONArray json = JSON.parseArray(jsonStr);
        String first = (String) json.get(0);        
        System.out.println(first);
        System.out.println(json);
    }
1
2
3
4
5
6
7
8
// JSON字符串为混合类型,既有简单对象,又有数组,逐层解析
public void test3() {
        String jsonStr = "[{'name':'倾城','age':'23'},{'name':'香湘','age':'17'},{'name':'剑雄','age':'27'}]";
        JSONArray jsonArr = JSON.parseArray(jsonStr);        
        JSONObject json = jsonArr.getJSONObject(0);
        System.out.println(json);
}
1
2
3
4
5
6
7
// JSON字符串有对应的类时,使用对象的解析
public void test4(){
        String jsonString = "{\"name\":\"张员外\",\"age\":\"44\",\"like\":{\"deliciousFood\":\"丸子\",\"number\":\"一碗\",\"girl\":\"小夫人\",\"girlName\":\"倾城\"},\"money\":[\"土地\",\"树林\",\"商铺\"],\"staff\":{\"name\":\"赵六\",\"position\":\"护卫\",\"charactor\":\"肥胖\"}}";        
        Popel p = JSON.parseObject(jsonString, Popel.class);        
        System.out.println(p);        
}
1
2
3
4
5
6
注意:这里推荐一个非常好用的JSON网站

 

package bean;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * @author cxt
 * @date 2020/9/1
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
public class Pople {
    private String name;
    private int age;
    private Like like;
    private String[] money;
    private Staff staff;
}

@Data
@NoArgsConstructor
@AllArgsConstructor
class Like{
    private String deliciousFood;
    private String number;
    private String girl;
    private String girlName;
}

@Data
@NoArgsConstructor
@AllArgsConstructor
class Staff{
    private String name;
    private String position;
    private String charactor;
}

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39


JSONObject转成javaBean:

JSON.parseObject(json格式数据源,想要转换的对象); 将指定的JSON字符串转换成自己的实体类的对象

生成JSON字符串

/**
     * 生成json字符串
     */
    public static String createJson(Object obj) {
        Gson gson = new Gson();
        return gson.toJson(obj);
    }
1
2
3
4
5
6
7
JSON.toJSONString将对象转成JSON

JSON.toJSONString(map, SerializerFeature.WriteMapNullValue) 指定序列化方式就打印出来
————————————————
版权声明:本文为CSDN博主「cxt104926」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/Q_Q104926/article/details/108358323

posted on 2023-09-15 11:56  csjoz11  阅读(250)  评论(0编辑  收藏  举报