Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/385.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/202.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
org.json.JSONObject kotlin vs java_Java_Android_Json_Kotlin_Org.json - Fatal编程技术网

org.json.JSONObject kotlin vs java

org.json.JSONObject kotlin vs java,java,android,json,kotlin,org.json,Java,Android,Json,Kotlin,Org.json,我注意到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) { A

我注意到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);
    }
}
我们需要先转换成JSON字符串,然后再从中生成JSONObject
{“name”:“Dog”,“age”:2}
。否则我们会得到空的JSONObject
{}

在科特林:

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中的对象

注意:-在上述所有示例中,我使用了
org.json.JSONObject


提前感谢。

如果向Java类中添加属性getter(
String getName()
),会发生什么?另外,请确保指定在每种情况下使用的
JSONObject
。添加属性getter时,我直接从对象中获取
JSONObject
。对于这两种语言,字段需要在JSONObject的getter方面可见,以提供
JSONObject
。谢谢。如果在Java类中添加属性getter(
stringgetname()
),会发生什么?另外,请确保指定在每种情况下使用的
JSONObject
。添加属性getter时,我直接从对象中获取
JSONObject
。对于这两种语言,字段需要在JSONObject的getter方面可见,以提供
JSONObject
。谢谢