0

我想从jason webservice

JSON响应是:

{"content":[{"id":"1","asset_id":"62","title":"sample page","alias":"","introtext":"","fulltext":"Some Contents"},{"id":"2","asset_id":"62","title":"sample page2","alias":"","introtext":"","fulltext":"Some Contents"},{"id":"3","asset_id":"62","title":"sample page3","alias":"","introtext":"","fulltext":"Some Contents"}]}

访问这里后 ,我以这种方式完成了:

private void parseData() {
    // Creating JSON Parser instance
    JSONParser jParser = new JSONParser();

    // getting JSON string from URL
    JSONObject json = jParser.getJSONFromUrl(BASE_URL);

    try {
        // Getting Array of Contents
        contents = json.getJSONArray(TAG_CONTENTS);

        // looping through All Contents
        for(int i = 0; i < contents.length(); i++){
            JSONObject c = contents.getJSONObject(i);

            // Storing each json item in variable
            id = c.getString(TAG_ID);
            title = c.getString(TAG_TITLE);      
        }

        textView.setText(id + " " + title);
    } catch (JSONException e) {
        e.printStackTrace();
    }
}

现在我得到了 id =3和 title = sample page3result 我怎样才能得到前两个值!!?

4

3 回答 3

1

阿尔谢!!试试这个人!!

private void parseData() {
    // Creating JSON Parser instance
    MyJSONParser jParser = new MyJSONParser();

    // getting JSON string from URL
    JSONObject json = jParser.getJSONFromUrl(BASE_URL);

    try {
        // Getting Array of Contents
        jsonArrar = json.getJSONArray(TAG_CONTENTS);
        List list = new ArrayList<String>();
        // looping through All Contents
        for(int i = 0; i < jsonArrar.length(); i++){
           // JSONObject c = jsonArrar.getJSONObject(i);


            String id1=jsonArrar.getJSONObject(i).getString(TAG_ID);                
            String title=jsonArrar.getJSONObject(i).getString(TAG_TITLE);               
            String fullText=jsonArrar.getJSONObject(i).getString(TAG_FULL_TEXT);                

            list.add(id1);
            list.add(title);
            list.add(fullText);
        }

        Iterator<String> iterator = list.iterator();
        StringBuilder builder = new StringBuilder();
        while (iterator.hasNext()) {
            String string = iterator.next();                
            builder.append(string+"\n");

        }

        textView.setText(builder);
    } catch (JSONException e) {
        e.printStackTrace();
    }
}
于 2013-03-03T20:29:08.333 回答
0

你的线是JSONObject和不是JSONArray

你应该这样使用它:

JSONObject jso = new JSONObject(line);
JSONArray jsa = new JSONArray(jso.getJSONArray("content"));
于 2013-03-03T08:50:48.297 回答
0

尝试这样的事情

// jsonData : 响应

List<String> 内容 = 新 ArrayList<String>();

字符串[] 值;

            try {


        JSONObject jsonObj = new JSONObject(jsonData);
        if (jsonObj.get(JSON_ROOT_KEY) instanceof JSONArray) {

            JSONArray array = jsonObj.optJSONArray(JSON_ROOT_KEY);
            for (int loop = 0; loop < array.length(); loop++) {
val = new String[loop];
JSONObject Jsonval = array.getJSONObject(loop);
val.Jsonval.getString(TAG_ID);
val.Jsonval.getString(asset_id);

. . ETC

内容.add(val);

}
}

}

于 2013-03-03T12:26:35.230 回答