Я посылаю JSON из php-файла, чтобы получить через код kotlin в Android Studio.
Я записываю json перед отправкой в файл «test.txt» и содержимое этого файла после выполнения выглядит так:
test.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);
Сообщение Я использую следующий класс:
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
Я не знаю, как взять поле ‘result’, которое эквивалентно пониманию того, как взять 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}
Других решений пока нет …