Как создать “древовидные” массивы в JSON?

282
21 мая 2017, 21:35

Я понимаю как "распарсить" строку json в которой есть древовидная структура, но не могу понять, как создать дополнительные массивы в определенной ветке. Ниже пример структуры, которую мне нужно создать программно. Приведите пожалуйста пример хотя бы некоторых ветвей.

{
    "update": "20170101000230",
    "create": "20170101000230",
    "id": "20170511232754063740_1939324677",
    "items": [
      {
      "id": "0_0",
      "name": "name 0_0",
      "type": "M",
      "comm":"комментарий",
      "items": [
        {
          "id": "1_0",
          "name": "name 1_0",
          "type": "M",
        },
        {
          "id": "1_1",
          "name": "name 1_1",
          "type": "M",
          "jd": "240000"
        },
        {
          "id": "1_3",
          "name": "name 1_3",
          "type": "M",
          "jd": "240000",
          "items": {
            "id": "2_0",
            "name": "name 2_0",
            "type": "M",
            "jd": "240000",
            "items": {
              "id": "3_0",
              "name": "name 3_0",
              "type": "M",
              "jd": "240000"
            }
          }
        }
      ]
    },
    {
      "id": "0_1",
      "name": "name 0_1",
      "type": "M",
      "jd": "240000",
      "cityid":"4000",
      "comm":"комментарий",
      "city":"SPb"
    },
    {
      "id": "0_2",
      "name": "name 0_2",
      "type": "M",
      "cityid":"4000",
      "comm":"комментарий",
    },
    {
      "id": "0_3",
      "name": "name 0_3",
      "type": "M",
      "jd": "240000",
      "comm":"комментарий",
    }
  ]
}
Answer 1

Например, можно сначала создавать дочерние элементы и потом вставлять их в родительские.

Простой пример:

JSONObject thirdLevelJsonObject = new JSONObject();
thirdLevelJsonObject.put("name", "json_object");
thirdLevelJsonObject.put("level", 3);
JSONObject secondLevelJsonObject = new JSONObject();
secondLevelJsonObject.put("name", "json_object");
secondLevelJsonObject.put("level", 2);
secondLevelJsonObject.put("content", thirdLevelJsonObject);
JSONObject firstLevelJsonObject = new JSONObject();
firstLevelJsonObject.put("name", "json_object");
firstLevelJsonObject.put("level", 1);
firstLevelJsonObject.put("content", secondLevelJsonObject);

В итоге, firstLevelJsonObject будет таким:

{  
   "name":"json_object",
   "level":1,
   "content":{  
      "name":"json_object",
      "level":2,
      "content":{  
         "name":"json_object",
         "level":3
      }
   }
}
READ ALSO
Удаление комментариев из javа-программы

Удаление комментариев из javа-программы

Из текста java-программы удалить комментарии вида // и /*Новый текст записать в тот же файл

408
In-app purchase android

In-app purchase android

ЗдравствуйтеВнедрил гугловский пример для покупок в приложении TrivialDrive в свое приложение

314
Не уверен в мощности JSON

Не уверен в мощности JSON

На Java надо написать прогруммку, которая забьет текстовый файл инфой в формате Json40000 Json обьектов, в каждом примерно 1000 символов

293
Как заморозить нить (Thread) извне?

Как заморозить нить (Thread) извне?

Если мы создаем нить, то можем заморозить ее на время в методе run, но каким образом мы можем остановить ее на время извне?

291