我注意到在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
提前谢谢。
暂无答案!
目前还没有任何答案,快来回答吧!