- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
这是我的 JSON
负载,我需要向 firstArray
添加更多对象。
{
"firstArray": [{
"data1": 1,
"data2": "DATA"
}, {
"data1": 2,
"data2": "DATA2"
}],
"secondArray": [{
"number": 1,
"data": "DATA3",
}, {
"number": 2,
"data": "DATA4"
}],
"thirdArray": [{
"something": 1,
"thatthing": "DATA5"
}, {
"something": 2,
"thatthing": "DATA6"
}]
}
这是我读取上述有效负载的方法:
public FirstArray createFirstArray(FirstArray object) {
try {
JsonNode jsonNode = mapper.readTree(new File(filePath));
ObjectNode objectNode = mapper.getNodeFactory().objectNode();
objectNode.putPOJO("firstArray", jsonNode.get("firstArray"));
objectNode.put("data1", object.getData1());
objectNode.put("data2", object.getData2());
System.out.println(objectNode.toString());
} catch (IOException e) {
e.printStackTrace();
}
}
它返回:
{
"firstArray":[
{
"data1":1,
"data2":"DATA"
},
{
"data1":2 "data2":"DATA2"
}
],
"data1":123,
"data2":"randomDATA"
}
我需要获取数组内的数据,因为最后一个对象不是单独的,我该怎么做?
最佳答案
您需要存储根节点。在您的示例中打印 jsonNode
变量。下面的示例执行相同的操作:
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;
import com.fasterxml.jackson.databind.node.ArrayNode;
import com.fasterxml.jackson.databind.node.ObjectNode;
import java.io.File;
public class Json {
public static void main(String[] args) throws Exception {
File jsonFile = new File("test.json");
ObjectMapper mapper = new ObjectMapper();
mapper.enable(SerializationFeature.INDENT_OUTPUT);
ObjectNode root = (ObjectNode) mapper.readTree(jsonFile);
// create new node item
ObjectNode newNode = new ObjectNode(mapper.getNodeFactory());
newNode.put("data1", 3);
newNode.put("data2", "DATA3");
// create new class item
FirstItem newItem = new FirstItem(4, "DATA4");
// get array node
ArrayNode firstArray = (ArrayNode) root.get("firstArray");
// add new ObjectNode
firstArray.add(newNode);
// add new POJO
firstArray.add(mapper.convertValue(newItem, JsonNode.class));
// serialise root
System.out.println(mapper.writeValueAsString(root));
}
}
class FirstItem {
private int data1;
private String data2;
public FirstItem(int data1, String data2) {
this.data1 = data1;
this.data2 = data2;
}
public int getData1() {
return data1;
}
public String getData2() {
return data2;
}
}
上面的代码打印:
{
"firstArray" : [ {
"data1" : 1,
"data2" : "DATA"
}, {
"data1" : 2,
"data2" : "DATA2"
}, {
"data1" : 3,
"data2" : "DATA3"
}, {
"data1" : 4,
"data2" : "DATA4"
} ],
"secondArray" : [ {
"number" : 1,
"data" : "DATA3"
}, {
"number" : 2,
"data" : "DATA4"
} ],
"thirdArray" : [ {
"something" : 1,
"thatthing" : "DATA5"
}, {
"something" : 2,
"thatthing" : "DATA6"
} ]
}
关于java - 将对象添加到 json 文件中对象的 JsonArray,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54908313/
我正在使用网络服务请求直方图数据。数据是数组中的一组数组: [[1375056000000,23.284713745117],[1375142400000,3.809531211853], [1375
这是我的 json 文件的相关部分: "categories": [ [ "Belgian Restaurant", "belgian" ],
我目前很困惑,为什么我不能在我的 Android 应用程序中从 JSONArray 中提取 JSONArray。下面给出了一个示例和我的源代码片段。 //The JSON { "cur
我正在尝试解析 JSONObject。 这个 JSONObject 中有一个 JSONArray,它在 JSONArray 中还有另一个 JSONArray。 我试图解析的 json 形式如下。 {
我正在尝试解析对象数据列表中的 JSON 数组 payment_details。 在这里,我已经成功解析了回收站 View 中调用的数据数组,但我无法调用 payment_details 数组。 适配
我正在寻找一个选项,可以将多个值添加到 JSONArray 并将其添加到另一个 JSONArray 中,而无需创建多个变量。例如: JSONArray array1 = new JSONArr
我遇到过一种情况,org.json.JSONArray 对象非常大,这最终会导致延迟和其他问题。因此,我们决定将 JSONArray 分割成更小的 block 。例如,如果 JSONArray 是这样
您好,我正在尝试在另一个 json 数组中解析一个 json 数组。帮我解决这个问题。 我的 Json 数组是 "results":[ { "percentcompleted"
我正在使用 Gson用于解析 json 响应。我需要在 JsonArray 中解析 JSONArry.. 我的回答是.. { "message": "Retreive sucessfully", "f
@GET @Produces("application/json") public Response GetAll() throws JSONException{ tblCategoryDao
我从服务器获取以下 json: { "Data": [ { "Record": [ " d11", "d12"
我正在使用 ajax 将 json 对象从 javascript 传递到 java servlet。 var jsonObj = JSON.stringify(objArray); //Then I
我需要获取作为“结果”内部数组的“示例”数据 JSON FILE 并将其附加到字符串。最简单的方法是什么? 这就是我得到“定义”的方式 private JSONObject queryResults;
我需要从 JSONArray 获取 JSONArray: JSONParser parser = new JSONParser(); JSONObject jObject=(J
我有一个 jsonArray 响应。我需要阅读此响应,其中包含 3 个 jsonArray。 这是 json 响应。这是一个 GET 请求并通过 Volley 请求发送。 [ "0x9000",
在此 Json 响应中,如何使用 Java 访问“smallImageUrls”并获取图像 url? 似乎“smallImageUrls”是“匹配”jsonarray 中的一个数组。如果我错了,请有人
这个问题在这里已经有了答案: Convert string to JSON array (10 个答案) 关闭 5 年前。 如何正确地将此字符串转换为 jsonArray? { "myArr
是否可以从较新的 EJB JSON 库转换为较旧的 org.json 库,而无需依赖 org.json.simple 或 GSON? 在下面的例子中,“buttons”是一个填充的 JsonArr
如何从jsonarray获取jsonarray? 我试过的代码。 for(loop) List stringList = new ArrayLis
我目前是 Json 新手,遇到了一个问题。我搜索了很多但找不到答案! 我从 json url 获取名称列表。名称可以在此 json 文件中重复,但我只想将它们的一条记录保留到我称为“arr”的新数组中
我是一名优秀的程序员,十分优秀!