我的 JSON 是数组还是对象


Is my JSON an array or an object?

1[[23[]]

我知道"["表示JOSNArray,"{"表示JSONObject。但是,由于我的结果以 [ 开头,即使 { 在实际字符串之前,整个数据片段现在也是一个数组吗?

如果在 android 中解析,我应该解析数组还是对象?

我的PHP脚本:

它是一个

包含单个对象的数组。字符串分隔第一个对象第一项的名称。

正如Zbynek Vyskovsky所说,它是一个具有单个对象的数组,因此要获得可以使用的数据

         JSONArray jsonArray=new JSONArray(<your json object>);
         JSONObject jsonObject = jsonArray.get(0);
         String date = jsonObject.getString("Date");
         String temp = jsonObject.getString("Temp");

确定这一点的最佳方法是先格式化。将您的回复粘贴到此站点 http://json.parser.online.fr/

在那里你会看到

1)红色方括号 - 代表一个数组。

2)蓝色大括号代表一个对象。

简而言之,您有一个包含单个对象的数组。

您的 Json 是一个只包含一个 Json 对象的数组。我将实际展示它如何与JSon Array和JsonObject一起工作。

例如,我有一个JSON数组:

[{
        "name": "abc",
        "description": "ABC server",
        "state": "online"
    },
    {
        "name": "xyz",
        "description": "XYZ client",
        "state": "online"
    },
    {
        "name": "mnp",
        "description": "MNP server",
        "state": "online"
    }]

所以上面的数组实际上包含 3 个 Json 对象,例如 [{Obj1},{Obj2},{Obj3}] .

当我们尝试获取键的任何值时,首先我们需要存储 JSon 数组,然后我们需要通过传递索引来获取确切的 Json 对象,例如:jsonObject obj = JsonArray.get(0)

get()方法中将密钥传递给 Json 对象后不久,您将获得密钥。 例如:String s = obj.get("state") .