如何在 jsonobject 中设置数组值
Posted
技术标签:
【中文标题】如何在 jsonobject 中设置数组值【英文标题】:How to set array value in the jsonobject 【发布时间】:2021-06-28 04:46:26 【问题描述】:我得到的数组值是
我需要将对象构造为 jsonObject。
所以我添加了如下内容,但返回的对象是错误的。
如何在用户中按预期添加数组。
注意:这里我从一个片段发送数组中的用户来设置我的有效负载中的值
private String mUserArray; //value =["user1", "user2"]
mUserArray is added in the constructor.
final JsonArray array = new JsonArray();
array.add(mUserArray1);
final JsonObject jo = new JsonObject();
jo.addProperty("type", "value")
jo.add("usernames" , array); // If i set the userarray it failed to convert Added like this as well//new JsonPrimitive(mUserArray1)
return jo;
预期结果:
"type": "value", "usernames":["user1", "user2"]
实际结果:
"type":"value","usernames":"[\"user1\", \"user2\"]"
【问题讨论】:
您能否澄清一下这是哪种 JSON 实现和编程语言?我认为它是 Java 中的 GSON 还是我弄错了? “在构造函数中添加了 mUserArray”是什么意思?您是否从String
创建了一个新的JsonArray
?请给出代码。
数组中的用户列表。 ArrayList
【参考方案1】:
您似乎将 usernames
属性添加为字符串文字而不是 JSON 数组。您可以通过以下方式从 Java 数组中构造一个 JsonArray
字符串。
String[] userArray = "user1", "user2";
JsonArray userJsonArray = new JsonArray();
for(String user: userArray)
userJsonArray.add(new JsonPrimitive(user));
JsonObject jsonObject = new JsonObject();
jsonObject.addProperty("type", "value");
jsonObject.add("usernames", userJsonArray);
请注意,JsonObject::addProperty
仅将原语添加到 JSON 对象而不是数组或对象。
【讨论】:
以上是关于如何在 jsonobject 中设置数组值的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Spring Boot 中的 JSONObject 内的 JSONArray 中放置 2 个或更多值?