java - JSON 异常字符串无法转换为 JSON 对象

标签 java android

我正在尝试解析 json 并遇到一个小问题。

我的 json 字符串如下所示:

String json =
    [
        "{caption=blah, url=/storage/emulated/0/DCIM/Camera/20140331_164648.jpg}",
        "{caption=adsf, url=/storage/emulated/0/DCIM/Camera/20140330_103412.jpg}"
    ]

到目前为止我的代码如下所示:

try {
JSONArray jsonObj = new JSONArray(json);

for (int i = 0; i < jsonObj.length(); i++) {
    JSONObject c = jsonObj.getJSONObject(i);



    String img = c.getString("url");
    String cap = c.getString("caption");

但它抛出异常类型java.lang.String无法转换为JSONObject

我做错了什么?

编辑

如果它对任何人都有帮助,我最终使用 GSON 以正确的预期格式获取我的 json,如下所示:

Gson gson = new Gson();
String json = gson.toJson(mylist);

最佳答案

您的 JSON 数组包含类似元素

"{caption=blah, url=/storage/emulated/0/DCIM/Camera/20140331_164648.jpg}"

这是一个String而不是JSON对象。因此,您不能尝试将其作为 JSONObject 进行检索。

似乎您获得的 JSON 不在 format 中你期望的。即使你去掉了它周围的 "" ,它仍然不是有效的 JSON,所以我不明白它的目的足以帮助你。

关于java - JSON 异常字符串无法转换为 JSON 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22967953/

相关文章:

java - Hibernate连接表错误: Unable to find column with logical name

java - 我怎样才能把托尔金的 Sprite 语放在 Java 中

android - 自 XS 6 以来不再调用 Xamarin.Android 应用程序

android - xmpp : ConnectionClosedOn Error! 解析器得到 END_DOCUMENT 事件

java - 在循环中创建位图时发生内存泄漏

java - Gradle 从同一个项目创建 war 和 jar

android - animateCamera 有效,而 moveCamera 不适用于 GoogleMap - Android

ANDROID SQL 问题

java - Gradle 同步失败 : com. google.android.gms :play-services-basement and com. google.firebase:firebase-common

java - 将 C++ long 类型转换为 JNI jlong