2017-07-27 98 views
-1

我有以下构建JSON对象的程序。不知道如何使用下面的程序构建数组。无法使用JSONObject正确构建JSON对象

的pom.xml

<dependency> 
    <groupId>com.googlecode.json-simple</groupId> 
    <artifactId>json-simple</artifactId> 
    <version>1.1.1</version> 
</dependency> 

JsonObjectConverter.java

public class JsonObjectConverter { 

    private static final String STORE_ID = "TMSUS"; 

    public static void main(String[] args) { 
     System.out.println(print1()); 
    } 

    private static String print1() { 
     JSONObject body = new JSONObject(); 

     JSONArray events1 = new JSONArray(); 
     events1.add(100L); 
     events1.add(200L); 
     JSONArray events2 = new JSONArray(); 
     events2.add(300L); 
     events2.add(400L); 

     JSONArray eventLogs = new JSONArray(); 
     eventLogs.add(events1); 
     eventLogs.add(events2); 

     body.put("storeId", STORE_ID); 
     body.put("eventLogs", eventLogs); 

     return body.toString(); 
    } 

} 

输出与当前程序:

{ 
    "eventLogs": [ 
    [ 
     100, 
     200 
    ], 
    [ 
     300, 
     400 
    ] 
    ], 
    "storeId": "TMSUS" 
} 

预期输出:

{ 
    "eventLogs": [ 
    { 
     "storeId": "TMSUS", 
     "eventIds": [ 
     100, 
     200 
     ] 
    }, 
    { 
     "storeId": "TMSCA", 
     "eventIds": [ 
     300, 
     400 
     ] 
    } 
    ], 
    "userName": "meOnly" 
} 

不知道如何获得预期的输出。

请指导。

+0

因此,你插入*数组*阵列*,你想知道为什么你没有得到*对象数组* *?你的问题到底是什么? – shmosel

+0

我不知道如何使用上述程序构建数组数组 – user2325154

+0

您正在构建一个数组数组。但这不是你预期产出的结构。显然你有一些关于如何构建JSON数组和对象的概念。你需要更具体地说明你卡在哪里。 – shmosel

回答

0

没关系,我得到它的工作。这是更新的方法。

private static String print1() { 
     JSONObject body = new JSONObject(); 

     JSONObject eventLog1 = new JSONObject(); 
     JSONArray events1 = new JSONArray(); 
     events1.add(100L); 
     events1.add(200L); 
     eventLog1.put("storeId", "TMSUS"); 
     eventLog1.put("eventIds", events1); 

     JSONObject eventLog2 = new JSONObject(); 
     JSONArray events2 = new JSONArray(); 
     events2.add(300L); 
     events2.add(400L); 
     eventLog2.put("storeId", "CBKUS"); 
     eventLog2.put("eventIds", events2); 

     JSONArray eventLogs = new JSONArray(); 
     eventLogs.add(eventLog1); 
     eventLogs.add(eventLog2); 

     body.put("eventLogs", eventLogs); 
     body.put("userName", "customer-portal-user"); 

     return body.toString(); 
    }