【发布时间】:2016-02-07 00:37:20
【问题描述】:
我编写了一个从 WebService 检索数据并在 ListView 中显示这些数据的应用程序。
这是我的 JSON 对象:
{
"products": [{
"id": "240",
"title": "Przemys\u0142 stoczniowy. Co dalej?",
"introtext": "<p>Przemys\u0142 stoczniowy prze\u017cywa obecn[....]"
}, {
"id": "239",
"title": "Ceny Franka \u2013 prognozy",
"introtext": "</p><p>Po ostatnich zmianach w kursie Franka wiele [...]"
}, {
"id": "238",
"title": "Otwarty Fundusz Emerytalny",
"introtext": "</p><p>Saldo zakup\u00f3w i sprzeda\u017cy akcji [...]"
}, {
"id": "233",
"title": "Czy waluta Bitcoin doczeka\u0142a si\u0119 gro\u017anego konkurenta?",
"introtext": "</p><p>Bitcoin - kryptowaluta, wprowadzona w 2009 roku. [...]"
}],
"success": 1
}
这些是我的静态变量 - JSON 节点名称:
public static final String TAG_SUCCESS = "success";
public static final String TAG_PRODUCTS = "products";
public static final String TAG_PID = "id";
public static final String TAG_NAME = "title";
public static final String TAG_INTROTEXT = "introtext";
这些工作正常。
现在我有了不同的 JSON:
{"status":200,
"data":
{"slide":[
{"image":"http:\/\/www.domain.com\/image\/slide\/1.jpg","link":"http:\/\/www.domain.com\/product?id=52\x0078lang=pl"},
{"image":"http:\/\/www.domain.com\/image\/slide\/2.jpg","link":"http:\/\/www.domain.com\/product?id=53\x0078lang=pl"},
{"image":"http:\/\/www.domain.com\/image\/slide\/3.jpg","link":"http:\/\/www.domain.com\/product?id=4\x0078lang=pl"},
{"image":"http:\/\/www.domain.com\/image\/slide\/4.jpg","link":"http:\/\/www.domain.com\/product?id=13\x0078lang=pl"}],
"portfolio":[
{"id":52,"name":"Aplikacja pierwsza","description":"To jest opis aplikacji pierwszej[...]"},
{"id":37,"name":"Aplikacja druga","description":"To jest opis aplikacji drugiej [...]"},
{"id":4,"name":"Aplikacja trzecia","description":"To jest opis aplikacji trzeciej [...]"},
{"id":51,"name":"Aplikacja czwarta","description":"To jest opis aplikacji czwartej [...]"},
"person":[
{"name":"Jan Kowalski","position":"Prezes","image":"http:\/\/www.domain.com\/image\/persons\/1.png"},
{"name":"Jan Nowak","position":"Dyrektor","image":"http:\/\/www.domain.com\/image\/persons\/2.png"},
{"name":"Adam Malysz","position":"Vice Director","image":"http:\/\/www.domain.com\/image\/persons\/3.png"}],
"work":[
{"name":"Programista","image":"http:\/\/www.domain.com\/image\/file-type\/android.png","file":"http:\/\/www.domain.com\/file\/ogloszenie_1.pdf"},
{"name":"Praktykant","image":"http:\/\/www.domain.com\/image\/file-type\/smarttv.png","file":"http:\/\/www.domain.com\/file\/ogloszenie_2.pdf"},
{"name":"Project Manager","image":"http:\/\/www.domain.com\/image\/file-type\/pm.png","file":"http:\/\/www.domain.com\/file\/dogloszenie_3.pdf"},
{"name":"Tester","image":"http:\/\/www.domain.com\/image\/file-type\/tester.png","file":"http:\/\/www.domain.com\/file\/ogloszenie_4.pdf"}
]}}
现在我必须提取变量:id、name 和 description。
当我在 TAG_PRODUCTS 字符串“portfolio”中写入时,我得到:
W/System.err: org.json.JSONException: No value for portfolio
当我在 TAG_PRODUCTS 字符串“数据”中写入 - 或更广泛地说,我得到:
W/System.err: org.json.JSONException: Value {"work":[{"image":"http:\/\/www.domain.com\/image\/slide\/1.jpg"[...]
系统在 Log 中为我提供了长 JSON 字符串,但我的应用程序无法运行(在 try-catch 块中结束运行)。
【问题讨论】:
-
您的新 JSON 不是有效的 JSON。
portfolio没有右方括号 -
另外,添加您的 Java 代码。你在哪里解析这个 JSON