【问题标题】:How to get JsonString to JsonArray in Android如何在 Android 中获取 JsonString 到 JsonArray
【发布时间】:2016-02-05 11:19:29
【问题描述】:

我们收到这样的回复:

[
  {
    id: 124,
    membershipid: ,
    title: MEMBER
  },
  {
    id: 125,
    membershipid: 4123,
    title: TWOYEARDIRECTORR
  },
  {
    id: 126,
    membershipid: ,
    title: TWOYEARDIRECTOR
  },
  {
    id: 127,
    membershipid: ,
    title: MEMBER
  }
]

我们正在尝试将 JsonString 转换为 JsonArray 我们的代码

ServiceHandler 是扩展HttpClient 的用户定义类

String jsonStr = sh.makeServiceCall(url_check, ServiceHandler.GET);
Log.d("result : ", jsonStr);
try {
    JSONObject tt=new JSONObject(jsonStr);
}

但它显示org.json.JSON.typeMismatch

谁能帮帮我 提前致谢!

【问题讨论】:

  • [{id:124,membershipid:,title:MEMBER}..] 不是有效的 json ... [{"id":124,"membershipid":"","title":"MEMBER"}..]
  • @Pavan Alapati 你可以随时查看pro.jsonlint.com
  • 使用 jsonlint 或任何其他资源检查您的 json 是否有效。
  • 在 jsonlint 中显示有效的 json
  • 发布完整的 logcat 错误。

标签: android json exception getjson type-mismatch


【解决方案1】:

由于您收到的是数组,因此请使用 JSONArray 而不是 JSONObject

【讨论】:

  • 如果使用 JsonArray 也是同样的问题
  • 我们已经在 J​​son 验证器中进行了测试,它显示了有效的 json
  • @PavanAlapati 发布您收到的错误
【解决方案2】:

上面提到的 JSON 是 RFC 4627 字符串。将 JSON (RFC 4627) 编码的字符串解析为相应的对象。我们必须使用 JSONTokener。

JSONObject object = (JSONObject) new JSONTokener(json).nextValue();
 String query = object.getString("id");
 String membershipid = object.getString("membershipid");
 String title = object.getString("title");

否则将 JSON 作为普通 JSON 字符串返回。 如果您在服务器端使用 php,请使用“JSON_ENCODE”将字符串编码为 json。

希望对你有帮助。

【讨论】:

  • 我们在.net中使用SqlServer和服务
  • 我们收到错误原因:java.lang.ClassCastException:java.lang.String 无法转换为 org.json.JSONObject
  • 你能插入这个并告诉我。 JSONArray 数组=新 JSONArray(响应); JSONObject jObj = array.getJSONObject(0);字符串错误 = jObj.getString("ErrorCode");
  • JSONObject array=new JSONObject(response); JSONArray jObj = array.getJSONArray(0);字符串错误 = jObj.getString("ErrorCode");试试这个
  • JsonArray 不允许 0 值并为 jobj.getString("id"); 获取错误;
【解决方案3】:

尝试使用:

JSONArray tt=new JSONArray (jsonStr);

【讨论】:

    猜你喜欢
    • 2018-10-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多