Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/223.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何在Kotlin中将ArrayList添加到JsonObject_Android_Kotlin - Fatal编程技术网

Android 如何在Kotlin中将ArrayList添加到JsonObject

Android 如何在Kotlin中将ArrayList添加到JsonObject,android,kotlin,Android,Kotlin,PaymentDetails类 添加到Json对象 在这里,我试图向现有的JsonObject添加新的Arraylist。问题是最终的Json对象不是我所期望的。我怎样才能解决这个问题?下面是我所期望的和得到的 期望 {"receiptNo":"fggff","todate":"4\/12\/2018","remark":"","payment_details&quo

PaymentDetails类

添加到Json对象

在这里,我试图向现有的JsonObject添加新的Arraylist。问题是最终的Json对象不是我所期望的。我怎样才能解决这个问题?下面是我所期望的和得到的

期望

{"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对象。