gpt4 book ai didi

Java 将对象追加到 JSON

转载 作者:行者123 更新时间:2023-12-02 16:16:44 25 4
gpt4 key购买 nike

我想将 JSON 对象附加到现有的 JSON 数组以获得这样的数据结构。

"results":[
{
"lat":"value",
"lon":"value"
},
{
"lat":"value",
"lon":"value"

}
]

我尝试使用示例中的代码来完成此操作,但不幸的是整个对象每次都被覆盖。

    Log.i(AppHelper.APP_LOG_NAMESPACE, "POSITIONS AVAILABLE " + jsonDataString);
AppHelper helper = new AppHelper(ctx);
JSONObject mainObject = new JSONObject(jsonDataString);
JSONObject valuesObject = new JSONObject();
JSONArray list = new JSONArray();
//putv given values to the JSON
valuesObject.put("lat", lat.toString());
valuesObject.put("lon", lon.toString());
valuesObject.put("city", city);
valuesObject.put("street", street);
valuesObject.put("date", helper.getActualDateTime());
valuesObject.put("time", helper.getActualDateTime());
list.put(valuesObject);
//mainObject.put("values", list);
mainObject.accumulate("values", list);
saveJsonData(ctx, mainObject.toString(),"positions");

应该怎样才是正确的?

每次重写所有以前的值时都会放置并累积,但我想附加此对象:

{
"lat":"value",
"lon":"value"
},

进入结果父级。

顺便说一句:我想在没有 GSON 的情况下做到这一点。

感谢您的帮助..

最佳答案

你的代码没有任何问题。它确实附加了

String jsonDataString = "{\"results\":[{\"lat\":\"value\",\"lon\":\"value\" }, { \"lat\":\"value\", \"lon\":\"value\"}]}";
JSONObject mainObject = new JSONObject(jsonDataString);
JSONObject valuesObject = new JSONObject();
JSONArray list = new JSONArray();
valuesObject.put("lat", "newValue");
valuesObject.put("lon", "newValue");
valuesObject.put("city", "newValue");
valuesObject.put("street", "newValue");
valuesObject.put("date", "newValue");
valuesObject.put("time", "newValue");
list.put(valuesObject);
mainObject.accumulate("values", list);
System.out.println(mainObject);

这将打印 {"values":[[{"date":"newValue","city":"newValue","street":"newValue","lon":"newValue","time ":"newValue","lat":"newValue"}]],"结果":[{"lon":"值","lat":"值"},{"lon":"值","纬度":"值"}]}。这不是你所期待的吗?

使用 gson 你可以这样做

import com.google.gson.Gson;
import com.google.gson.JsonObject;


public class AddJson {

public static void main(String[] args) {
String json = "{\"results\":[{\"lat\":\"value\",\"lon\":\"value\" }, { \"lat\":\"value\", \"lon\":\"value\"}]}";
Gson gson = new Gson();
JsonObject inputObj = gson.fromJson(json, JsonObject.class);
JsonObject newObject = new JsonObject() ;
newObject.addProperty("lat", "newValue");
newObject.addProperty("lon", "newValue");
inputObj.get("results").getAsJsonArray().add(newObject);
System.out.println(inputObj);
}

}

关于Java 将对象追加到 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23724221/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com