将String转换为JSONObject对象,从JSONObject获取JSON对象,然后从JSON对象中获取JSON数组

1
2
3
String response = erpHttpRequest.syncMaterialFromErp(startTime);
JSONObject jsonObject = JSONObject.parseObject(response);
JSONArray jsonArray = jsonObject.getJSONObject("BillData").getJSONArray("Data");

这段代码的作用是通过进行 ERP HTTP 请求来获取响应,并将响应解析为 JSON 对象和 JSON 数组。

具体解释如下:

  • erpHttpRequest.syncMaterialFromErp(startTime): 这是一个 ERP HTTP 请求的方法调用,用于从 ERP 系统中同步材料数据。根据代码上下文,它接受一个 startTime 参数,表示同步的起始时间,并返回一个字符串类型的响应。
  • String response = erpHttpRequest.syncMaterialFromErp(startTime): 这是将 ERP HTTP 请求的响应赋值给字符串变量 response
  • JSONObject jsonObject = JSONObject.parseObject(response): 这是使用 fastjson 库将 response 字符串解析为 JSON 对象的操作。JSONObject.parseObject() 方法将传入的 JSON 字符串解析为一个 JSONObject 对象。
  • jsonObject.getJSONObject("BillData"): 这是从 jsonObject 中获取名为 “BillData” 的 JSON 对象。
  • .getJSONArray("Data"): 这是从 “BillData” JSON 对象中获取名为 “Data” 的 JSON 数组。
  1. 将JSON格式的String转换成Set

    需求描述:协助人在数据库中保存的格式是内容为    ["900670287014526977","900670813806526464"]的字符串,现在需要将负责人和协助人的id都拿出来,并且这两个字段可能重复

    解决方案:使用Gson对协助人字段进行解析,转换成set,然后将负责人add

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
                       //获取协助人
    String helper = rpmsProjectItem.getHelper();
    //获取负责人
    String principal = rpmsProjectItem.getPrincipal();
    // 使用 Gson 来解析 JSON
    Gson gson = new Gson();
    // 创建 Type 对象,表示 Set<String> 的类型
    Type setType = new TypeToken<Set<String>>() {
    }.getType();
    // 将 JSON 字符串转换为 Set<String>
    Set<String> stringSet = gson.fromJson(helper, setType);
    stringSet.add(principal);

    其中,Type setType = new TypeToken<Set<String>>() {}.getType();:创建 TypeToken 的匿名内部类,其中泛型参数指定了要获取的类型信息,即 Set<String>。通过 .getType() 方法获取 Type 对象,该对象包含了 Set<String> 的具体类型信息。