Я пытаюсь выполнить итерацию через хэш-карту и создать строку json из значений. Для этого я использую библиотеку JSONSimple. У меня есть структура, которую я хочу, но значения переписываются. Структура, в которой я заканчиваю, -JSONSimple Overwriting
{
"new_id":{
"coordinates_list":{
"Coordinates: ":[
"lat: 27.0",
"lon: 28.0"
]
},
"t0vhf40cv86t":[
"123"
]
}
}
Но в JSON должны быть дополнительные значения. Включается только последняя строка хэш-карты. Нужно ли мне добавить еще один JSONObject, который я пишу?
JSONObject obj = new JSONObject(); // final json object written out
double lat = 20.00; // test data
double lon = 21.00; // test data
for (Map.Entry<String, List<String>> entry : data.entrySet()){
JSONObject childObj = new JSONObject();
JSONObject coordObj = new JSONObject();
JSONArray entities = new JSONArray();
JSONArray coordinates = new JSONArray();
String key = entry.getKey();
List<String> values = data.get(key);
for(String value : values){
entities.add(value);
}
childObj.put(key,entities);
// increments the test data
lat = lat +1;
lon = lon + 1;
coordinates.add("lat: " + lat);
coordinates.add("lon: " + lon);
coordObj.put("Coordinates: " ,coordinates);
childObj.put("coordinate list ", coordObj);
obj.put("new_id" , childObj);
}
Почему вы делаете 'List values = data.get (key)', не должен ли он быть? List values = entry.getValue() '? –