java.lang.string无法转换为jsonarray asp.net

时间:2013-03-14 08:17:34

标签: android asp.net json

我有一个asp.net WCF,它包含一个函数,它会序列化LINQ结果并返回给我这个json字符串

"[{\"intPromoter\":1,\"varID\":\"DP900001\",\"varName\":\"Jay Chou\"}]"

但它似乎与我学习json有点不同所以我添加了“行” 在android java中使用此代码

  text = "{\"rows\":" + text  + "}";

它就像这样

{"rows":"[{\"intPromoter\":1,\"varID\":\"DP900001\",\"varName\":\"Jay Chou\"}]"}

所以当我使用下面的函数解析成json数组时,它给了我java.lang.string无法转换为jsonarray。所以我不确定.net中的字符串是否需要在json读取之前更改为某种格式,或者是否有一种直接的方式而不在开头添加“行”。提前谢谢。

JSONObject jObject = new JSONObject(results);
JSONArray jArray = jObject.getJSONArray("rows"); //This LINE GIVE error,

for (int i=0; i < jArray.length(); i++)
{
JSONObject oneObject = jArray.getJSONObject(i);

int intPromoter =Integer.parseInt(oneObject.getString("KEY_intPromoter"));
String varID = oneObject.getString("KEY_varID");
String varName = oneObject.getString("KEY_varName");
}

1 个答案:

答案 0 :(得分:2)

你的最后一个字符串是用双引号括起来的数组,这意味着它是一个字符串而不是一个数组。删除这些,它应该工作正常。

E.g。

{"rows":[{"intPromoter":1,"varID":"DP900001","varName":"Jay Chou"}]}

此外,您应该能够通过直接从服务器的字符串中实例化JSONArray来完全消除对JSONObject的需求,例如。

JSONArray rows = new JSONArray(json);

有关详细信息,请参阅以下文档:

http://developer.android.com/reference/org/json/JSONArray.html