Я хочу объединить несколько объектов JSON в один массив - PullRequest
0 голосов
/ 01 января 2019

Я пытаюсь объединить несколько объектов JSON в один массив JSON и, возможно, выполнить фильтрацию по названию данных (температура, давление, высота).

Я пытался использовать JSON-Simple и Java, но яне могу заставить его работать.

Вот части JSON:

Ввод, который я хочу преобразовать:

{"temperature" : -12, "sendtimes" : 10000}
{"pressure" : 1000, "sendtimes" : 10001}
{"altitude" : 100.7, "sendtimes" : 10002}`

Как я хочу это после преобразования:

{
  "temperaturData": [
      {"temperature": -12, "sendtimes": 10000},
      {"pressure" : 1000, "sendtimes" : 10001},
      {"altitude" : 100.7, "sendtimes" : 10002},
  ]
}

Понятия не имею, как это сделать, спасибо всем, кто может мне помочь!

Ответы [ 3 ]

0 голосов
/ 01 января 2019

Использование JSON Library

JSONArray arr = new JSONArray();
JSONObject obj = new JSONObject();
obj.put("temperature", "-12");
obj.put("sendtimes", "1000");

arr.put(obj);
obj = new JSONObject();
obj.put("pressure", "1000");
obj.put("sendtimes", "1001");

arr.put(obj);

JSONObject finalObj = new JSONObject();
finalObj.put("temperaturData", arr);
System.out.println(finalObj);

Хотя я предлагаю следующее: вам следует лучше назначать ключи и указанным внутренним массивам, что облегчит доступ к ним и избавит от ошибок.

0 голосов
/ 01 января 2019

JSON Library, упомянутая Jatin Asija, - это очень классная и простая библиотека JSON, которую вы можете бесконечно использовать, чтобы получить то, что вы хотите.Однако стандартом де-факто для работы с JSON в java является библиотека JSON Jackson, также известная как «FasterXML / jackson».Все, что вам нужно будет сделать, это использовать ObjectMapper класс и его методы readValue() и writeValueAsString(Object value), чтобы делать все, что вы хотите.Вот классное учебное пособие для ObjectMapper и Вот зависимости Maven, которые могут вам понадобиться для его использования:

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
</dependency>
<dependency>
    <groupId>com.fasterxml.jackson.datatype</groupId>
    <artifactId>jackson-datatype-jsr310</artifactId>
</dependency>

Вот javadoc для ObjectMapper

0 голосов
/ 01 января 2019

Это довольно просто, чего вы хотите достичь.Я использую JavaScript, то же самое можно сделать с любым другим языком, использующим аналогичную структуру данных.Что вы хотите сделать, это создать массив и добавить значения в этот массив.

var tempData = {"temperaturData" : []}
tempData["temperaturData"].push({"temperature": -12, "sendtimes": 10000})
tempData["temperaturData"].push({"pressure" : 1000, "sendtimes" : 10001})
tempData["temperaturData"].push({"altitude" : 100.7, "sendtimes" : 10002})
JSON.stringify(tempData)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...