-1

这是我的 JSON 数据。

{"JSONDATA":[{"key":0,"value":"--Any--"},{"key":61,"value":"Accounting"},{"key":81,"value":"Aerospace & Defense"},{"key":72,"value":"Automotive"},{"key":83,"value":"Banking"},{"key":84,"value":"Biotech"},{"key":85,"value":"Construction"},{"key":86,"value":"Customer Service"},{"key":87,"value":"Education"},{"key":82,"value":"Energy"},{"key":70,"value":"Finance"},{"key":193,"value":"Government"},{"key":194,"value":"Healthcare"},{"key":71,"value":"Insurance"},{"key":73,"value":"Legal"},{"key":62,"value":"Management"},{"key":63,"value":"Manufacturing"},{"key":64,"value":"Marketing\/Advertising"},{"key":77,"value":"Media - Journalism"},{"key":74,"value":"Pharmaceutical"},{"key":75,"value":"Real Estate"},{"key":76,"value":"Research"},{"key":65,"value":"Restaurant"},{"key":66,"value":"Retail"},{"key":67,"value":"Sales"},{"key":78,"value":"Science"},{"key":68,"value":"Telecommunications"},{"key":79,"value":"Training"},{"key":69,"value":"Transportation"},{"key":80,"value":"Utilities"}]}

我想在我的 Android 应用程序上对其进行解码,这是我使用的代码。,但我的输出没有得到任何东西。也没有错误。

JSONObject jObject= new JSONObject();
JSONArray menuObject = new JSONArray(jObject.getString("JSONDATA"));
String app;
for (int i = 0; i<menuObject.length(); i++) {
{
 app=menuObject.getJSONObject(i).getString("value").toString();
 a.append(app); // a is my TextView
}
4

6 回答 6

4

首先,你没有jObject用任何东西初始化你的。

//pass in string
JSONObject jObject= new JSONObject(jsonString);

JSONObjects 需要一些东西来解析,否则(你现在拥有它的方式)它们在没有数据的情况下初始化,这不是很有帮助。

其次,getString当你真的想要一个数组时,你正在使用:

JSONArray menuObject = jObject.getJSONArray("JSONDATA");

getString旨在从 JSON 对象返回一段字符串数据。"JSONDATA"持有一个数组,所以我们需要选择正确的类型来检索。

第三,你有一个多余的toString(),因为getString已经返回了一个String

app=menuObject.getJSONObject(i).getString("value");
于 2013-09-18T09:42:54.527 回答
1

这是错的:

JSONArray menuObject = new JSONArray(jObject.getString("JSONDATA"));

尝试:

JSONObject jObject= new JSONObject(yourJSONString);
JSONArray menuObject = jObject.getJSONArray("JSONDATA");

请记住一件事: 使用要解析的 JSON 字符串创建一个 JSON 对象,然后您可以从创建的 JSON 对象中获取字符串/JSON 对象或 JSON 数组。

于 2013-09-18T09:40:04.673 回答
0

将您的 json 响应存储在字符串中

String jsonResponse="YOUR JSON RESPONSE STRING";

//传递字符串如下

JSONObject jObject= new JSONObject(jsonResponse);
JSONArray menuObject = jObject.getJSONArray("JSONDATA"));
String app;
for (int i = 0; i<menuObject.length(); i++) {
{
 app=menuObject.getJSONObject(i).getString("value").toString();
 a.append(app); // a is my TextView
}
于 2013-09-18T09:40:31.993 回答
0

JSONObject在and中使用适当的 getter 和 setter JSONArray,并且您的“JSONDATA”条目不是字符串。做这样的事情:

JSONObject jObject = new JSONObject(yourJsonString);
JSONArray menuArray = jObject.getJSONArray("JSONDATA");
for (int i = 0; i < menuArray.length(); i++) {
    String app = menuObject.getJSONObject(i).getString("value");
    a.append(app); // a is my TextView
}
于 2013-09-18T09:41:59.103 回答
0

使用以下代码解析您的 json 字符串。

JSONObject obj = new JSONObject(youtString);
JSONArray array = obj.getJSONArray("JSONDATA");
for (int i = 0; i < array.length(); i++) {
  JSONObject c = array.getJSONObject(i);

  String key = c.getString("key");
  String value = c.getString("value");
  a.append(value);
}
于 2013-09-18T09:48:14.283 回答
0

用这个:-

String result="[{"key":0,"value":"--Any--"},{"key":61,"value":"Accounting"},{"key":81,"value":"Aerospace & Defense"},{"key":72,"value":"Automotive"},{"key":83,"value":"Banking"},{"key":84,"value":"Biotech"},{"key":85,"value":"Construction"},{"key":86,"value":"Customer Service"},{"key":87,"value":"Education"},{"key":82,"value":"Energy"},{"key":70,"value":"Finance"},{"key":193,"value":"Government"},{"key":194,"value":"Healthcare"},{"key":71,"value":"Insurance"},{"key":73,"value":"Legal"},{"key":62,"value":"Management"},{"key":63,"value":"Manufacturing"},{"key":64,"value":"Marketing\/Advertising"},{"key":77,"value":"Media - Journalism"},{"key":74,"value":"Pharmaceutical"},{"key":75,"value":"Real Estate"},{"key":76,"value":"Research"},{"key":65,"value":"Restaurant"},{"key":66,"value":"Retail"},{"key":67,"value":"Sales"},{"key":78,"value":"Science"},{"key":68,"value":"Telecommunications"},{"key":79,"value":"Training"},{"key":69,"value":"Transportation"},{"key":80,"value":"Utilities"}]";
JSONArray menuObject = new JSONArray(result);
String app;
for (int i = 0; i<menuObject.length(); i++) {
{
 app=menuObject.getJSONObject(i).getString("value").toString();
 a.append(app); // a is my TextView
}
于 2013-09-18T09:49:08.600 回答