【问题标题】:Unable to iterate through String created with Gson无法遍历使用 Gson 创建的字符串
【发布时间】:2017-12-05 18:19:52
【问题描述】:

我正在尝试遍历我使用 Gson 创建的这个字符串。

"`{\"public_id\":\"xxxxxx\",\"timestamp\":xxxxx,\"signature\":\"xxxxx\",\"api_key\":\"xxxxxx\"}"`

我尝试将此字符串转换为 JSONArray 并使用 Iterator 对其进行迭代,但得到了of type java.lang.String cannot be converted to JSONArray

这就是我构建字符串的方式

Gson gson = new GsonBuilder().create();
String parameter = gson.toJson(newImages.get(i).post_data);

我想要实现的是遍历字符串以最终将这些属性添加到 okhttp 请求中。

【问题讨论】:

  • 这毫无意义。首先,这个 JSON 是一个对象,而不是一个数组。其次,您不能遍历字符串。字符串不是集合。第三,如果您想访问对象的各个属性,为什么要首先将其转换为 JSON 字符串。直接使用对象newImages.get(i).post_data即可。
  • 您的 json 看起来像是被客户端转义了(引号被转义:\" 并且它被包裹在引号中)。

标签: java json string android gson


【解决方案1】:

我真的不知道你在做什么,但使用 gson.toJson() 并没有帮助。我不知道 post_data 是什么,但它看起来像一个字符串,而 toJson() 似乎将它包裹在引号中并转义了里面的引号。

认为你想做的是解析post_data。 可能,post_data 是 JSON。如果是这样,请使用 gson.fromJson() 将其解析为对象。请注意,您必须使用与 JSON 结构匹配的字段来定义目标对象。

【讨论】:

    猜你喜欢
    • 2023-03-16
    • 1970-01-01
    • 1970-01-01
    • 2018-04-11
    • 1970-01-01
    • 2015-09-11
    • 2018-09-12
    • 1970-01-01
    • 2010-11-17
    相关资源
    最近更新 更多