我正在从 php 文件发送一个 json,以便通过 android studio 中的 kotlin 代码接收。 我在发送之前将 json 写入文件“test.txt”,执行后该文件的内容为:
测试.txt
{"resultarray":{"result":115}}
php文件的部分内容如下
$response = array('result' => 115);
$response1 = array('resultarray' => $response);
$encoded = json_encode($response1);
file_put_contents("test.txt",$encoded);
header('Content-type: application/json');
exit($encoded);
我正在使用的 Post 类如下:
class Post {
@SerializedName("resultarray")
@Expose
public var resultarray: JSONObject? = null
override fun toString(): String {
if (resultarray == null )
{
return " 'resultarray' is null"
}else {
val entries = resultarray?.keys()
if (entries == null) {
return " 'entries' is null"
}else {
var tostr = "start"
for (entry in entries) {
var whatweget = resultarray?.get(entry)
if(whatweget != null) {
tostr += " " + whatweget
}
}
return tostr + "end"
}
}
当执行上述代码段时,结果字符串为
startend
我不知道如何获取“结果”字段,这相当于了解如何从 jsonobject 内部获取 jsonobject。 resultarray 也等于“{}”。所以问题可能出在 resultarray 的注释上。
提前致谢
最佳答案
问题的解决方法是将 resultarray 声明为 JSONElement(如下所示)。
class Post {
@SerializedName("resultarray")
@Expose
public var resultarray: JsonElement? = null
override fun toString(): String {
return ""+resultarray;
}
}
我在调用 toString() 时将其作为输出:
{"result":115}
关于php - Android - Kotlin : Sending a non empty jsonObject but receiving an empty one,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53813348/