解析Json在Java中的问题与Json格式android



如何从我的.json文件中获得以下格式的信息?:

[{"name":"My name","country":"Country name"}]

我得到了以下内容:

Json文件:

{"name":"My name","country":"Country name"}
Java文件:

@Override
        protected JSONObject doInBackground(String... args) {
            JsonParser jParser = new JsonParser();
            JSONObject json;
            json = jParser.getJSONFromUrl("http://example.com/myfile.json");
            System.out.println("JSON: " + json);
            if(json != null) {
                try {
                    name = json.getString("name");
                    country = json.getString("country");
                } catch (JSONException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
            return null;
        }

您的响应中没有得到JSONObject,您得到的是持有一个对象的JSONArray。因此这些行是错误的

JSONObject json;
json = jParser.getJSONFromUrl("http://example.com/myfile.json");

你应该用

代替它
JSONArray json;

得到第0个对象

JSONObject wholeObject = json.getJSONObject(0);

并从中获取字符串

name = wholeObject.getString("name");
country = wholeObject.getString("country");

你可以试试这个吗:

 protected JSONObject doInBackground(String... args) {
        JsonParser jParser = new JsonParser();
        JSONObject json;
        json = jParser.getJSONFromUrl("http://example.com/myfile.json");
        System.out.println("JSON: " + json);
        if(json != null) {
            try {
                JSONArray jsonArray = new JSONArray(json.toString());
                JSONObject newJSON = jsonArray.get(0); //first index
                name = newJSON.getString("name");
                country = newJSON.getString("country");
            } catch (JSONException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
        return null;
    }

相关内容

  • 没有找到相关文章

最新更新