来自android中jsonobject的数据

来自android中jsonobject的数据,android,json,Android,Json,下面是从一个字符串url调用的,返回一个json对象,其中包含一个json数组,但其他东西不起作用,有人能告诉我如何访问其中的数据吗 {"data":[{"8196":{"booking_id":"8150","client_id":"107","venue_id":null}}] 首先需要解码JSON字符串。作为回报,您得到的JSON sting实际上是JSON对象的序列化版本 您需要将该字符串解码为本机Java对象 在Java中有许多方法可以实现这一点。您可以从json.org

下面是从一个字符串url调用的,返回一个json对象,其中包含一个json数组,但其他东西不起作用,有人能告诉我如何访问其中的数据吗

      {"data":[{"8196":{"booking_id":"8150","client_id":"107","venue_id":null}}]

首先需要解码JSON字符串。作为回报,您得到的JSON sting实际上是JSON对象的序列化版本

您需要将该字符串解码为本机Java对象

在Java中有许多方法可以实现这一点。您可以从json.org上的Java部分开始。

String jsonStr=“{\'data\”:[{\'8196\”:{\'booking\u id\”:“8150\”,“client\u id\”:“107\”,“vention\u id\”:null}});
String jsonStr = "{\"data\":[{\"8196\":{\"booking_id\": \"8150\",\"client_id\": \"107\",\"venue_id\": null}}]}";

try {
    JSONObject json = new JSONObject(jsonStr);
    JSONArray array = json.getJSONArray("data");
    for (int i = 0; i < array.length(); i++) {
        JSONObject o = array.getJSONObject(i);
        Iterator it = o.keys();

        while (it.hasNext()) {
            String name = (String) it.next();
            o = o.getJSONObject(name);
            int bookingId = o.getInt("booking_id");
            int clientId = o.getInt("client_id");
            int venueId = o.optInt("venue_id");

            Log.v("TEST", String.format("Booking ID: %s -- Client ID: %s -- Venue ID: %s", bookingId, clientId, venueId));
        }

    }

} catch (JSONException e) {
    e.printStackTrace();
}
试一试{ JSONObject json=新的JSONObject(jsonStr); JSONArray数组=json.getJSONArray(“数据”); 对于(int i=0;i

我想这就是你想要的。顺便说一下,您发布的JSON格式不正确。最后它缺少了一个}。

我认为问题在于key-vention\u-id的值为空。你可以用空字符串(“”)替换空值,试试看。

向我们展示你当前的代码,并解释你所说的“其他东西不工作”是什么意思。你的json输出本身是错误的。你能不能把上面的json输出放在这里()你会得到错误:SyntaxError:输入意外结束。。。既然在结尾处查看json输出,那么Martins代码大体上就是我已经尝试过的,但是如果对象是(“8196”),那么它总是会随着我而改变,知道它是什么吗?我尝试调用对象(“8196”),而不实际命名它??在代码的键上添加了一个迭代器。应该可以解决您的问题。感谢martin,非常感谢,还可以处理字符串:)非常有用。这个json仍然有问题,它可以处理一个对象,当我有两个或多个预订时,它将不会遍历它:(尝试了各种。{“数据”:[{“8272”:[{“booking”\u id:“8221”,“client\u id:“108”,“场馆”\u id:null},“8281:{“booking”\u id:“8229”,“client_id”:“71”,“vention_id”:null}]}没有返回8281的值抱歉,忘记了结尾},这不是问题,只是忘了在这里复制它。