Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.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
Kotlin json解析,其中;val$t:String";_Json_Parsing_Kotlin_Gson - Fatal编程技术网

Kotlin json解析,其中;val$t:String";

Kotlin json解析,其中;val$t:String";,json,parsing,kotlin,gson,Json,Parsing,Kotlin,Gson,我正在尝试从中检索数据 "petfinder": { "pet": { "name": { "$t": "Belmont" } 使用 及 我遇到的问题是“$t”不是一个可识别的参数名。 我试过了 但这只会导致更多的错误。我使用的API将所有数据与$t配对,因此这对我来说是一个巨大的拦截器。这是我第一次使用Kotlin,所以任何帮助都会很棒。谢谢。您不能在Kotlin的标识符中使用$。要指定JSON中

我正在尝试从中检索数据

"petfinder": {
    "pet": {
        "name": {
                    "$t": "Belmont"
                }
使用

我遇到的问题是“$t”不是一个可识别的参数名。 我试过了


但这只会导致更多的错误。我使用的API将所有数据与$t配对,因此这对我来说是一个巨大的拦截器。这是我第一次使用Kotlin,所以任何帮助都会很棒。谢谢。

您不能在Kotlin的标识符中使用
$
。要指定JSON中键的名称不同于Kotlin中的属性名称,请使用
@SerializedName
注释:

class Name(@SerializedName("\$t") val t: String)

backticks和@SerializedName都可以工作。谢谢你们两位的帮助!原因是字符串模板中使用了
$
。它需要被转义才能作为字符串文字工作。虽然我觉得反勾号不适合使用,但至少知道它也可以工作是件好事。如果使用反勾号,那么每次引用名称时都必须使用它们,并且在类声明中只需应用一次
@SerializedName
解决方案。
class CurrentAnimal(val petfinder: Animal)
class Animal(val pet: Pet)
class Pet(val name: Name)
class Name(val $t: String)
"${'$'}t"
class Name(@SerializedName("\$t") val t: String)