Android 如何在Kotlin中将ArrayList添加到JsonObject
PaymentDetails类 添加到Json对象 在这里,我试图向现有的JsonObject添加新的Arraylist。问题是最终的Json对象不是我所期望的。我怎样才能解决这个问题?下面是我所期望的和得到的 期望Android 如何在Kotlin中将ArrayList添加到JsonObject,android,kotlin,Android,Kotlin,PaymentDetails类 添加到Json对象 在这里,我试图向现有的JsonObject添加新的Arraylist。问题是最终的Json对象不是我所期望的。我怎样才能解决这个问题?下面是我所期望的和得到的 期望 {"receiptNo":"fggff","todate":"4\/12\/2018","remark":"","payment_details&quo
{"receiptNo":"fggff","todate":"4\/12\/2018","remark":"","payment_details":[{"account_no":" ","amount":"600","bank":"","branch":"","cheque_date":"","cheque_no":"","return_cheque_no":"","type":"Cash","return_type":false}]}
我从上面的代码中得到了什么
{"receiptNo":"fggff","todate":"4\/12\/2018","remark":"","payment_details":"[{\"account_no\":\"\",\"amount\":\"600\",\"bank\":\"\",\"branch\":\"\",\"cheque_date\":\"\",\"cheque_no\":\"\",\"return_cheque_no\":\"\",\"type\":\"Cash\",\"return_type\":false}]"}
Gson().toJson(myList)
返回一个字符串
您应该构建一个JSONArray
,并添加其元素。然后添加这个真数组。这只会起作用:
JsonArray array = new JsonArray();
array.add("test1");
array.add("test2");
JsonObject object = new JsonObject();
object.add("arr", array);
您还可能会弄乱JSON和GSON对象。这里我只使用了Gson对象。Gson().toJson(myList)
返回一个字符串
您应该构建一个JSONArray
,并添加其元素。然后添加这个真数组。这只会起作用:
JsonArray array = new JsonArray();
array.add("test1");
array.add("test2");
JsonObject object = new JsonObject();
object.add("arr", array);
您还可能会弄乱JSON和GSON对象。这里我只使用了Gson对象。正如@shkschneider指出的Gson.toJson()
返回字符串值,如果要将该字符串直接添加到json对象中,则需要将其转换为json数组,然后添加它
JSONArray jsArray = new JSONArray(Gson().toJson(myList))
var obj2 = JSONObject(obj.get("reciptDetail").toString())
obj2.remove("payment_details")
obj2.put("payment_details",jsArray)
Log.e("cash Object", obj2.toString())
正如@shkschneider指出的gson.toJson()
返回字符串值,并且您要将该字符串直接添加到json对象中,您需要将其转换为json数组,然后添加它
JSONArray jsArray = new JSONArray(Gson().toJson(myList))
var obj2 = JSONObject(obj.get("reciptDetail").toString())
obj2.remove("payment_details")
obj2.put("payment_details",jsArray)
Log.e("cash Object", obj2.toString())
您好,现在我添加了下面的代码。但仍然得到了相同的结果--val jsonArray=jsonArray()jsonArray.put(jsObject)它可以工作:{“arr”:[“test1”,“test2”]}
。您所做的只是在某处创建一个toString()
。顺便说一句,你可能弄乱了JSON和GSON对象。嗨,现在我添加了下面的代码。但我仍然得到了相同的结果——val jsonArray=jsonArray()jsonArray.put(jsObject)它工作:{“arr”:[“test1”,“test2”]}
。您所做的只是在某处创建一个toString()
。顺便说一句,您可能会弄乱JSON和GSON对象。