简体   繁体   中英

How can I get JSONArray values from JSONP?

I am creating an Android app that searches for recipes. I am trying to call an API which returns ingredients as JSONP. I need this data for validation purposes, so the user can't enter any invalid ingredients.

I want to get the values from the JSONArray and return the searchValue. But I do not know how to do this as the format of the data is in JSONP and not JSON.

Below is an example of what I am trying to retrieve.

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

When I tried to simply get the array, there was a JSONException. For debugging, i only wanted to return the length of the array, to see how many ingredients were inside the array.

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

But it didn't like the characters at the start and it gave me this error.

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

So how can I "ignore" the first part and get values from the JSONArray?

You may do it with simple string operations, substring based on the first index of [ and the last index of ] . Not too safe or elegant, but as long as the surrounding javascript has more or less known to you (it starts with set_metadata('ingredient', and ends with ); ) you are good to go with it.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM