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

标签 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 cannot converted to 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");
}

最佳答案

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

例如

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

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

JSONArray rows = new JSONArray(json);

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

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

关于android - java.lang.string 无法转换为 jsonarray asp.net,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15404196/

相关文章:

android - Android 5.1.1 上的 Html 文件输入不显示图库

php - android上传PHP数据如何与MySQL数据库连接?

asp.net - 如何在 ASP.NET 中使用按钮标记?

javascript - 无法将 JSON 对象转换为任何可用的对象

c# - 使用带有 $ 符号的变量反序列化 JSON

javascript - Firebase 不适用于 Cordova

android - 在 Android 上通过 native Twitter 应用程序打开 Twitter 推文

c# - 如何禁用 gridview 中的行数据绑定(bind)事件中的按钮?

asp.net - 保护 IL 免受逆向工程影响

c# - 序列化/反序列化多个(不同类型的)对象