org.json.jsonobject kotlin vs java

0vvn1miw  于 2021-07-06  发布在  Java
关注(0)|答案(0)|浏览(280)

我注意到在kotlin和java中jsonobject的行为方式有区别。
在java中:

public class Animal {
    String name;
    int age;

    public Animal(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public static void main(String[] args) {
        Animal anim = new Animal("Dog", 2);
        JSONObject obj = new JSONObject(new Gson().toJson(anim));
        System.out.println(obj);
    }
}

在生成jsonobject之前,我们需要转换为json字符串 {"name":"Dog","age":2} 从中解脱出来。否则我们会得到空的jsonobject {} .
在Kotlin:

class Animal {
    val name: String = "Dog"
    val age: Int = 1
}

data class MadExample (
    val x: String,
    val y: String
)

fun main() {
    val mad = MadExample("mad", "example")
    println(JSONObject(mad))
    val animal = Animal()
    println(JSONObject(animal))
}

在生成jsonobject之前,我们不需要将其转换为json字符串。
所以,我的问题是:在这两种情况下,幕后发生了什么?为什么jsonobject不直接支持java中的对象?
note:- in 以上所有的例子,我都用了 org.json.JSONObject 提前谢谢。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题