Я хочу проанализировать строку JSON:
MyJsonString:
{
"status": "ok",
"count": 2,
"count_total": 9,
"pages": 5,
"posts": [
{
"id": 432,
"type": "post",
"title": "Title 1"
},
{
"id": 434,
"type": "post",
"title": "Title 2"
}
]
}
Я прошел через:
http://www.androidcompetencycenter.com/2009/10/json-parsing-in-android/
http://p-xr.com/ android-tutorial-how-to-parse-read-json-data-into-a-android-listview /
Примеры работают нормально, но для этого , я отредактировал строку JSON, чтобы сделать ее строкой Java.
Пример: Строка JSON:
{"menu": {
"id": "file",
"value": "File",
"popup": {
"menuitem": [
{"value": "New", "onclick": "CreateNewDoc()"},
{"value": "Open", "onclick": "OpenDoc()"},
{"value": "Close", "onclick": "CloseDoc()"}
]
}
}}
Я отредактировал:
String jsonStr = "{menu: {" +
"id: file," +
"value: File," +
"popup: {" +
"menuitem: [" +
"{value: New, onclick: CreateNewDoc()}," +
"{value: Open, onclick: OpenDoc()}," +
"{value: Close, onclick: CloseDoc()}" +
"]" +
"}" +
"}}";
Но когда я пытаюсь проанализировать эту myJsonString после соответствующего редактирования, чтобы она была действительной строкой Java, и запуска проекта, мне выдается предупреждение и он не отображает сообщение Toast, которое дает мне заголовки.
Логкэт:
10-19 18:36:45.972: WARN/System.err(1250): org.json.JSONException: Unterminated object at character 101 of { status : ok ,count : 2,count_total : 9,pages : 5,posts : [{id : 432,type : post ,title : Title 1 ,},{id : 434,type : post ,title : Title 2 ,},]}
Я не знаю, где я делаю не так? Даже я понятия не имею, как программно преобразовать Json String в действительную Java String?
Любая помощь приветствуется.
Редактировать:
String jsonString="{\" status : ok \",\"count : 2\",\"count_total : 9\",\"pages : 5\",\"posts\" : [{\" id\" : \"432\",\"type\": \" post\", \"title\" : \" Title 1 \"},{ \"id \": \"434\",\type : post ,\"title\" : \" Title 2\"}]}";
JSONObject jsonObj = new JSONObject(jsonString);
String status_value = jsonObj.getString("status");
Toast.makeText(context,"Status_value= "+status_value, Toast.LENGTH_LONG).show();
Я пытался таким образом поднять значение статуса, но не смог. Пожалуйста помоги.