簡體   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