使用JSONObject从String创建JSON

时间:2018-02-14 12:07:25

标签: java json

我试图从一个来自Excel的字符串

创建以下Json
{
                "RequestId": "1234",
                "OrderID": "NCBTEST02082018-01",
                "Assets": [{
                                "Field1":"1",
                                "Field2": "NCBTEST-01",
                                "Field3": "1",
                                "Field4": "1",
                                "Field5": "1",
                                "Field6": "1",
                                "Field7": "1"
                }] }

我可以创建资产araay,但我不知道如何在资产数组之前添加"RequestId": "1234","OrderID": "NCBTEST02082018-01",的前2个字段。

4 个答案:

答案 0 :(得分:0)

我不确定你在做什么,但我应该是这样的:

JsonObject value = Json.createObjectBuilder()
  .add("RequestId", "1234")
  .add("OrderId", "NCB1234")
  .add("Assets", Json.createArrayBuilder()
    .add(Json.createObjectBuilder()
      .add("Field1", "1") // add more in loop
  ).build();

答案 1 :(得分:0)

如果您使用的是org.codehaus.jettison.json.JSONObject,请执行以下操作:

new JSONObject(jsonString);

其中jsonString是一个包含整个json对象的String。

答案 2 :(得分:0)

您可以使用新的JSONObject(字符串)来获取所需的json对象 现在来订购,如果你在谈论JSONObject,那么订单并不重要,因为值存储在键下,可以随机访问,不受订单影响 您可以创建新的JSONObject,然后在添加assets数组

之前添加requestid和orderid
JSONObject y=new JSONObject('');
y.put('requestid','whateer');
y.put('orderid','whatever');
y.put('assets',myjsonarray)

答案 3 :(得分:0)

以下是键值对:

" RequestId":" 1234"

" OrderID":" NCBTEST02082018-01"

因此,您可以将它们插入JSONObject。

这样的事情:

JSONObject jb = new JSONObject();
        JSONArray ja = new JSONArray();
        jb.put("Field1", "1");
        jb.put("Field2", "NCBTEST-01");
        jb.put("Field3", "1");
        jb.put("Field4", "1");
        jb.put("Field5", "1");
        jb.put("Field6", "1");
        jb.put("Field7", "1");
        ja.put(jb);


        JSONObject main = new JSONObject();
        main.put("RequestId", "1234");
        main.put("OrderID", "NCBTEST02082018-01");
        main.put("Assets", ja);

        System.out.println(main);

输出:

{
    "RequestId": "1234",
    "Assets": [{
        "Field4": "1",
        "Field5": "1",
        "Field2": "NCBTEST-01",
        "Field3": "1",
        "Field6": "1",
        "Field7": "1",
        "Field1": "1"
    }],
    "OrderID": "NCBTEST02082018-01"
}