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
Madhawa Priyashantha
9,8757 gold badges39 silver badges66 bronze badges
asked Feb 21, 2015 at 16:45
Armen Arzumanyan
2,0533 gold badges35 silver badges57 bronze badges
3 Answers 3
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());
}
answered Feb 21, 2015 at 16:52
Morteza Adi
2,5032 gold badges25 silver badges38 bronze badges
Sign up to request clarification or add additional context in comments.
Comments
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");
}
answered Feb 21, 2015 at 17:09
Manos
1,5012 gold badges29 silver badges46 bronze badges
Comments
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());
}
}
}
answered Feb 21, 2015 at 18:25
Armen Arzumanyan
2,0533 gold badges35 silver badges57 bronze badges
Comments
lang-java