【问题标题】:How can I get JSONArray values from JSONP?如何从 JSONP 获取 JSONArray 值?
【发布时间】:2016-06-13 03:34:21
【问题描述】:

我正在创建一个用于搜索食谱的 Android 应用。我正在尝试调用一个以 JSONP 形式返回成分的 API。我需要这些数据进行验证,因此用户不能输入任何无效成分。

我想从 JSONArray 中获取值并返回 searchValue。但我不知道该怎么做,因为数据的格式是 JSONP 而不是 JSON。

以下是我要检索的示例。

set_metadata('配料', [{"searchValue":"salt","description":"salt","term":"salt"},{"searchValue":"butter","description":"butter","term":"butter "},

当我试图简单地获取数组时,出现了 JSONException。为了调试,我只想返回数组的长度,看看数组中有多少成分。

JSONArray ingr = json.getJSONArray("");
System.out.println("Size of the array is: "  + ingr.length());

但它不喜欢一开始的字符,它给了我这个错误。

02-29 21:47:38.568    1993-2416/com.example.laptop.whatsfordinner E/JSON Parser﹕ Error parsing data org.json.JSONException: Value set_metadata('ingredient' of type java.lang.String cannot be converted to JSONObject

那么我如何“忽略”第一部分并从 JSONArray 中获取值?

【问题讨论】:

    标签: java android jsonp


    【解决方案1】:

    您可以通过简单的字符串操作来实现,基于[ 的第一个索引和] 的最后一个索引的子字符串。 不太安全或优雅,但只要您或多或少知道周围的 JavaScript(它以 set_metadata('ingredient', 开头并以 ); 结尾),您就可以使用它。

    【讨论】:

    • 你能给我举个例子吗?我不太熟悉如何使用子字符串
    猜你喜欢
    • 2020-12-17
    • 1970-01-01
    • 2012-04-15
    • 2021-09-28
    • 2017-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多