【问题标题】:Not able to build a JSON object correctly using JSONObject无法使用 JSONObject 正确构建 JSON 对象
【发布时间】:2017-07-27 20:58:51
【问题描述】:

我有以下程序正在构建 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"
}

不确定如何获得预期的输出。

请指导。

【问题讨论】:

  • 所以您正在插入 arrays 数组,但您想知道为什么没有得到 objects 数组?你的问题到底是什么?
  • 我不确定如何使用上述程序构建数组数组
  • 您正在构建一个数组数组。但这不是您期望输出中的结构。显然,您对如何构建 JSON 数组和对象有了一些概念。你需要更具体地说明你卡在哪里。

标签: java json maven json-simple


【解决方案1】:

没关系,我搞定了。这是更新的方法。

 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();
    }

【讨论】:

    猜你喜欢
    • 2020-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-13
    • 2013-10-14
    • 2014-11-02
    • 1970-01-01
    相关资源
    最近更新 更多