0

I have JSON array like

"Headlines": [
        {
            "Title": "SPYRUS Announces Support for Windows To Go 10 Preview",
            "Date": "2/18/2015",
            "UTCOffset": 0,
            "Source": "Marketwire - News Releases",
            "Url": "http://www.redinews.com/news/?story=201502151176008.html",
            "Images": [],
                "Tags": [
                    {
                        "TagType": "Symbols",
                        "TagValues": [
                            "MSFT"
                        ]
                    },
                    {
                        "TagType": "Companies",
                        "TagValues": [
                            "Microsoft Corporation"
                        ]
                    },

I am accessing "Headlines" with this code using org.json.simple.parser.JSONParser

 JSONParser jsonParser = new JSONParser();
 JSONObject jsonObject = (JSONObject) jsonParser.parse(obj);
 JSONArray lang = (JSONArray) jsonObject.get("Headlines");

 System.out.println(lang);

but I need access "Tags" sub array and get TagType and TagValues

How to access it? will be good also know how to parse sub array with org.codehaus.jackson.

Thanks

3 Answers 3

1

see this link.

it explains how to iterate over an json array

the code should be something like this

JSONArray headlines = (JSONArray) jsonObject.get("Headlines");
    Iterator<String> iterator = headlines.iterator();
    while (iterator.hasNext()) {
        System.out.println(iterator.next());
    }
Sign up to request clarification or add additional context in comments.

Comments

1

Check this

JSONParser jsonParser = new JSONParser();
 JSONObject jsonObject = (JSONObject) jsonParser.parse(obj);
 JSONArray lang = (JSONArray) jsonObject.get("Headlines");

JSONArray tag = lang.getJSONArray("tag");  

for (int i = 0; i < tag .length(); i++) {
        JSONObject jsonobject = jsonarray.getJSONObject(i);
        JSONArray temp= jsonobject .getJSONArray("TagValues"); 

        String tagValue = temp.getString(0);
        String tagType = jsonobject.getString("TagType");

    }

Comments

0

Here is a code which really work, used simple json and org.codehaus.jackson togheter.

JSONParser jsonParser = new JSONParser();
                            JSONObject jsonObject = (JSONObject) jsonParser.parse(obj);
                            JSONArray lang = (JSONArray) jsonObject.get("Headlines");
                            for (int i = 0; i < lang.size(); i++) {
                                JSONObject jsonobject = (JSONObject) lang.get(i);
                                Object subArray = jsonobject.get("Tags");
                                ObjectMapper mapperNew = new ObjectMapper();
                                JsonFactory factoryNew = mapperNew.getJsonFactory();
                                JsonParser jpNew;
                                System.out.println("sub Array " + subArray.toString());
                                jpNew = factoryNew.createJsonParser(subArray.toString());
                                JsonNode inputNew = mapperNew.readTree(jpNew);
                                 for (final JsonNode elementNew : inputNew) {
                                      Iterator<Map.Entry<String, JsonNode>> nodeIterator3 = elementNew.getFields();
                                       while (nodeIterator3.hasNext()) {
                                              Map.Entry<String, JsonNode> entry3 = (Map.Entry<String, JsonNode>) nodeIterator3.next();
                                               if (entry3.getKey() != null && entry3.getKey().equals("TagType")) {
                                                      System.out.println("TagType "  + entry3.getValue());
                                                 }
                                                 if (entry3.getKey() != null && entry3.getKey().equals("TagValues")) {
                                                      System.out.println("TagValues " + entry3.getValue());
                                                 }
                                       }
                                 }

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.