Android - Kotlin: отправка непустого jsonObject, но получение пустого - PullRequest
0 голосов
/ 17 декабря 2018

Я отправляю 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);

Используемый мной 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

Я не знаю, как взять поле 'result', которое эквивалентно пониманию того, как извлечь jsonobject изнутри jsonobject.Также resultarray равно "{}".Так что проблема, возможно, заключается в аннотации resultarray .

Заранее спасибо

1 Ответ

0 голосов
/ 18 декабря 2018

Исправление проблемы состояло в том, чтобы объявить resultarray как JSONElement (как вы можете видеть ниже).

class Post {
@SerializedName("resultarray")
@Expose
public var resultarray: JsonElement? = null

    override fun toString(): String {
        return ""+resultarray;
    }
}

Я взял в качестве вывода при вызове toString ():

{"result":115}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...