第一次使用JSON.parseObjectt()

JSON.parseObject的一些记录

需求

在工作的过程中,由于要对接第三方接口,而第三方返回的数据是字符串,然后要借用Apache的HttpClient发送请求和处理请求返回的数据,这个参考HttpClient发送http请求的官方文档,对于处理好的数据(**字符串
),就要使用到这个JSONparseObject()**这个方法了。

方法的测试用例

  1. 在使用之前要导入这个方法的包,这里添加的是maven依赖
<dependency>
      <groupId>com.alibaba</groupId>
      <artifactId>fastjson</artifactId>
      <version>1.2.4</version>
    </dependency>
  1. 然后进行测试用例的编写,编写测试用例的时候参考了JSON.parseObject的几种用法

以下是几种类型的转换
第一种

String str = "{\"success\":\"true\",\"returnAddress\":\"123\"}";
JSONObject jsonObject = JSON.parseObject(str);
System.out.println(jsonObject.toString());
System.out.println(jsonObject.getString("success"));
System.out.println(str);

第二种

String str2 = "{\"success\":\"true\",\"returnAddress\":\"123\", \"data\":{\"id\": 123}}";
JSONObject jsonObject2 = JSON.parseObject(str2);
System.out.println(jsonObject2.getString("data"));
System.out.println(JSON.parseObject(jsonObject2.getString("data")).getString("id"));

第三种

String str3 = "{\"success\":\"true\",\"returnAddress\":\"123\", \"data\":[{\"id\": 123},{\"id\": 223}]}";
        JSONObject jsonObject3 = JSON.parseObject(str3);
        System.out.println(jsonObject3.toString());
        System.out.println(jsonObject3.toJSONString());
        System.out.println("data " + jsonObject3.getString("data"));
        JSONArray data = JSON.parseArray(jsonObject3.getString("data"));
        for (Object d: data) {
            System.out.println(d);
            System.out.println(JSON.parseObject(d.toString()).getString("id"));
         System.out.println(JSON.parseObject(String.valueOf(d)).getString("id"));
        }
       System.out.println(JSON.parseObject(jsonObject3.getString("data")).getString("id"));

以下是完整的代码

package com.lanwq;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;

/**
 * @ClassName TestJsonObj
 * @Description TODO
 * @Author Administrator
 * @Date 2019/12/2 14:43
 */
public class TestJsonObj {
    public static void main(String[] args) {
        /*String str = "{\"success\":\"true\",\"returnAddress\":\"123\"}";
        JSONObject jsonObject = JSON.parseObject(str);
        System.out.println(jsonObject.toString());
        System.out.println(jsonObject.getString("success"));
        System.out.println(str);*/

        /*String str2 = "{\"success\":\"true\",\"returnAddress\":\"123\", \"data\":{\"id\": 123}}";
        JSONObject jsonObject2 = JSON.parseObject(str2);
        System.out.println(jsonObject2.getString("data"));
        System.out.println(JSON.parseObject(jsonObject2.getString("data")).getString("id"));*/

        /*String str3 = "{\"success\":\"true\",\"returnAddress\":\"123\", \"data\":[{\"id\": 123},{\"id\": 223}]}";
        JSONObject jsonObject3 = JSON.parseObject(str3);
        System.out.println(jsonObject3.toString());
        System.out.println(jsonObject3.toJSONString());
        System.out.println("data " + jsonObject3.getString("data"));
        JSONArray data = JSON.parseArray(jsonObject3.getString("data"));
        for (Object d: data) {
            System.out.println(d);
            System.out.println(JSON.parseObject(d.toString()).getString("id"));
            System.out.println(JSON.parseObject(String.valueOf(d)).getString("id"));
        }
//        System.out.println(JSON.parseObject(jsonObject3.getString("data")).getString("id"));
        String faceIds = getFaceIds(jsonObject3);
        System.out.println("faceIds: " + faceIds);*/

        /*Map map = new HashMap();
        System.out.println(map);
        gg();*/

        String str3 = "{\"success\":\"true\",\"returnAddress\":\"123\", " +
                "\"data\":[{\"id\": 123},{\"id\": 223},{\"id\": 223, \"name\": 22333}]}";
        Map<String, ArrayList<JSONObject>> stringArrayListMap = groupBYCamera(str3);
        for (String a : stringArrayListMap.keySet()) {
            System.out.println(a + " : " + stringArrayListMap.get(a) + "size: " + stringArrayListMap.get(a).size());
        }
    }

    private static Map<String, ArrayList<JSONObject>> groupBYCamera(String facesEntity) {
        System.out.println(facesEntity);
        Map<String, ArrayList<JSONObject>> map = new HashMap<>();
        JSONObject jsonObject = JSON.parseObject(facesEntity);
        String data = jsonObject.getString("data");
        JSONArray dataArray = JSON.parseArray(data);

        for (Object d : dataArray) {
            JSONObject value = JSON.parseObject(String.valueOf(d));
            String camera = value.getString("id");
            if (map.get(camera) == null) {
                map.put(camera, new ArrayList<JSONObject>());
            }
            ArrayList<JSONObject> jsonObjects = map.get(camera);

            if (map.containsKey(camera)) {
                jsonObjects.add(value);
            }
        }
        return map;
    }

    private static String getFaceIds(Object o) {
        JSONObject facesImageJson = (JSONObject) o;
        String data = facesImageJson.getString("data");
        JSONArray dataArray = JSON.parseArray(data);
        StringBuilder sb = new StringBuilder();
        for (int i = 0, len = dataArray.size(); i < len; i++) {
            Object obj = dataArray.get(i);
            if (i == len - 1) {
                sb.append(JSON.parseObject(String.valueOf(obj)).get("id"));
            } else {
                sb.append(JSON.parseObject(String.valueOf(obj)).get("id"));
                sb.append(",");
            }
        }
        return String.valueOf(sb);
    }

    public static void gg() {
        String faceIds = "123456", startTime = "2018-10-18 00:00:00", endTime = "2019-11-16 23:59:59";
        float similarityScore = 0.92f;
        String json = "{\"faceId\": \"" + faceIds + "\", \"scoreThreshold\": " + similarityScore + ", " +
                "\"displayType\": \"score\", \"genderConfidence\": 3, \"raceConfidence\": 3, " +
                "\"hatConfidence\": 3, \"glassesConfidence\": 3, \"starttime\": \"" + startTime + "\", " +
                "\"endtime\": \"" + endTime + "\"}";
        System.out.println(json);
        System.out.println(JSONObject.parseObject(json));
    }
}

记录下,后面使用可以更方便!

加油!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值