-2

I have a json String and there is an array inside it I wan to fetch only array part.

JSON String:

{
    "jsonKeywords": [
        {
            "xmlNodeKWId": 0,
            "xmlNodeId": 35,
            "nodeKeyword": "dfdfdf",
            "keywordPosition": "Top",
            "keywordPrefix": "",
            "keywordSuffix": "abcd",
            "valueInLine": 0,
            "keywordMatchPattern": "",
            "templateId": 3
        }
    ]
}

I want to convert it into only:

[
        {
            "xmlNodeKWId": 0,
            "xmlNodeId": 35,
            "nodeKeyword": "dfdfdf",
            "keywordPosition": "Top",
            "keywordPrefix": "",
            "keywordSuffix": "abcd",
            "valueInLine": 0,
            "keywordMatchPattern": "",
            "templateId": 3
        }
]

I am using Gson library to handel JSON. Is it possible to do that.

3 Answers3

0

Response class:

 public class Response{

    @SerializedName("jsonKeywords")
    private List<JsonKeywordsItem> jsonKeywords;

    public void setJsonKeywords(List<JsonKeywordsItem> jsonKeywords){
        this.jsonKeywords = jsonKeywords;
    }

    public List<JsonKeywordsItem> getJsonKeywords(){
        return jsonKeywords;
    }

    @Override
    public String toString(){
        return 
            "Response{" + 
            "jsonKeywords = '" + jsonKeywords + '\'' + 
            "}";
        }
}

JsonKeywordsItem class:

public class JsonKeywordsItem {

@SerializedName("keywordSuffix")
private String keywordSuffix;

@SerializedName("valueInLine")
private int valueInLine;

@SerializedName("keywordMatchPattern")
private String keywordMatchPattern;

@SerializedName("nodeKeyword")
private String nodeKeyword;

@SerializedName("keywordPrefix")
private String keywordPrefix;

@SerializedName("keywordPosition")
private String keywordPosition;

@SerializedName("templateId")
private int templateId;

@SerializedName("xmlNodeKWId")
private int xmlNodeKWId;

@SerializedName("xmlNodeId")
private int xmlNodeId;

public void setKeywordSuffix(String keywordSuffix) {
    this.keywordSuffix = keywordSuffix;
}

public String getKeywordSuffix() {
    return keywordSuffix;
}

public void setValueInLine(int valueInLine) {
    this.valueInLine = valueInLine;
}

public int getValueInLine() {
    return valueInLine;
}

public void setKeywordMatchPattern(String keywordMatchPattern) {
    this.keywordMatchPattern = keywordMatchPattern;
}

public String getKeywordMatchPattern() {
    return keywordMatchPattern;
}

public void setNodeKeyword(String nodeKeyword) {
    this.nodeKeyword = nodeKeyword;
}

public String getNodeKeyword() {
    return nodeKeyword;
}

public void setKeywordPrefix(String keywordPrefix) {
    this.keywordPrefix = keywordPrefix;
}

public String getKeywordPrefix() {
    return keywordPrefix;
}

public void setKeywordPosition(String keywordPosition) {
    this.keywordPosition = keywordPosition;
}

public String getKeywordPosition() {
    return keywordPosition;
}

public void setTemplateId(int templateId) {
    this.templateId = templateId;
}

public int getTemplateId() {
    return templateId;
}

public void setXmlNodeKWId(int xmlNodeKWId) {
    this.xmlNodeKWId = xmlNodeKWId;
}

public int getXmlNodeKWId() {
    return xmlNodeKWId;
}

public void setXmlNodeId(int xmlNodeId) {
    this.xmlNodeId = xmlNodeId;
}

public int getXmlNodeId() {
    return xmlNodeId;
}

@Override
public String toString() {
    return
            "JsonKeywordsItem{" +
                    "keywordSuffix = '" + keywordSuffix + '\'' +
                    ",valueInLine = '" + valueInLine + '\'' +
                    ",keywordMatchPattern = '" + keywordMatchPattern + '\'' +
                    ",nodeKeyword = '" + nodeKeyword + '\'' +
                    ",keywordPrefix = '" + keywordPrefix + '\'' +
                    ",keywordPosition = '" + keywordPosition + '\'' +
                    ",templateId = '" + templateId + '\'' +
                    ",xmlNodeKWId = '" + xmlNodeKWId + '\'' +
                    ",xmlNodeId = '" + xmlNodeId + '\'' +
                    "}";
}
}




Gson gson = new Gson();
      Response response = gson.fromJson("Your response string", Response.class);
            List<JsonKeywordsItem> mList = response.getJsonKeywords();
faiyaz meghreji
  • 271
  • 1
  • 2
  • 9
0

The quick way would be to use Map and unchecked casts to extract the jsonKeywords element. Assuming you read the JSON into inputJson variable:

Gson gson = new Gson();
Map<String, ?> map = gson.fromJson(inputJson, Map.class);
System.out.println(gson.toJson(map.get("jsonKeywords")));

will output:

[{"xmlNodeKWId":0.0,"xmlNodeId":35.0,"nodeKeyword":"dfdfdf","keywordPosition":"Top","keywordPrefix":"","keywordSuffix":"abcd","valueInLine":0.0,"keywordMatchPattern":"","templateId":3.0}]
Karol Dowbecki
  • 43,645
  • 9
  • 78
  • 111
0

You have to use JSONARRAY to get data array from JSON:

JSONObject jsonObject= new JSONObject(jsonResponse);
JSONArray jsonArray = jsonObject.getJSONArray("jsonKeywords");

Also, Refer This Link

Vinod Bokde
  • 338
  • 2
  • 14