繁体   English   中英

Android中JSON对象的JSON解析

[英]JSON Parsing of JSON Objects in android

我有一个JSON,

 {

 "Area1": "areacode1",
 "Area2": "areacode2",
 "Area3" : "areacode3"

 }

我想解析json并将其“区域”迭代为autocompletetextview,我的代码是,

//从本地文件读取JSON

public String loadJSONFromAsset() {
    String json = null;
    try {

        InputStream is = getAssets().open("arealist.json");

        int size = is.available();

        byte[] buffer = new byte[size];

        is.read(buffer);

        is.close();

        json = new String(buffer, "UTF-8");



    } catch (IOException ex) {
        ex.printStackTrace();
        return null;
    }
    return json;

}

//解析和迭代json ...

    try {
        JSONObject obj = new JSONObject(loadJSONFromAsset());
           Iterator<String> keys= obj.keys();
        while (keys.hasNext())
        {
            String keyValue = (String)keys.next();
            String valueString = obj.getString(keyValue);
            Log.d("Details-->",valueString);
        }

    } catch (JSONException e) {
        e.printStackTrace();
    }

我收到“类型不匹配:无法将JSONObject转换为JSONArray”的错误,我想知道如何将JSONObject转换为字符串并迭代到List。我是android的新手,所以很困惑如何继续进行进一步的工作,谢谢预先。

尝试像这样读取arealist.json

InputStream inputStream = getContext().getAssets().open("arealist.json");
                    BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));


 String line;
            StringBuilder sb = new StringBuilder();
            while ((line = reader.readLine()) != null){
                sb.append(line).append("\n");
            }

            //parse JSON and store it in the list
            String jsonString =  sb.toString();

并在JSONobject中使用此jsonString

通过以下代码调试给定的json后:

    String json = "{\n" +
            "\n" +
            " \"Area1\": \"areacode1\",\n" +
            "  \"Area2\": \"areacode2\",\n" +
            "  \"Area3\" : \"areacode3\"\n" +
            "\n" +
            " }";
    try {
        JSONObject obj = new JSONObject(json);
        Iterator<String> keys= obj.keys();
        while (keys.hasNext())
        {
            String keyValue = (String)keys.next();
            String valueString = obj.getString(keyValue);
            Log.d("Details-->",valueString);
        }



    } catch (JSONException e) {
        e.printStackTrace();
    }

我意识到您阅读哪个json的方式没有任何问题。 问题是从loadJSONFromAsset返回的字符串。 您必须更正该方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM