如何从JSONP获取JSONArray值?

时间:2016-02-29 22:08:42

标签: java android jsonp

我正在创建一个搜索食谱的Android应用。我试图调用一个返回成分为JSONP的API。我需要这些数据用于验证目的,因此用户无法输入任何无效成分。

我想从JSONArray获取值并返回searchValue。但我不知道如何做到这一点,因为数据的格式是JSONP而不是JSON。

以下是我要检索的示例。

  

set_metadata(#39&;成分&#39 ;,   [{" searchValue":"盐""描述":"盐""术语":&#34 ;盐"},{" searchValue":"黄油""描述":"黄油""术语# 34;:"黄油"},

当我尝试简单地获取数组时,出现了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获取值?

1 个答案:

答案 0 :(得分:0)

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