Search code examples
javagwtarraysjson

Remove quote from the JSONArray output


On the successful call, I am getting the JSONArray with the key "objects" and again the testValue with the key "name". The output is Like:

"Abcd"
"Wxyz"

My code is as follows:

public void onSuccess(JSONValue val) {
    JSONObject obj = val.isObject();
    JSONArray test = JSONUtil.getJSONArray(test, "objects");
    for (int i = 0; i < test.size(); i++) {
        JSONObject childJSONObject = (JSONObject) test.get(i);
        JSONValue testValue = childJSONObject.get("name");
        System.out.println(testValue);
    }
}

Want to print the name as following: (Without Double Quote)

Abcd
Wxyz

Solution

  • 1. .replaceAll()

    testValue.toString().replaceAll("\"", "");
    

    This method replace all the double quotes which are present in your name not the first and the last.

    Example : "Abcd" becomes Abcd but if the name is "Ab"cd" it should be Ab"cd according to your requirement but it becomes Abcd. Mean to say that all the double quote replaced.

    2. substring()

    If you want to use the substring method approach then use the following syntax to remove the first and the last double quotes from your string:

    testValue.toString().subString(1,testValue.toString().length()-1);
    

    1 - indicates the first character of the string

    testValue.toString().length()-1 : indicates the last character of the string.

    For your case .substring() method is more better than the .replaceAll(), if .getString() not working.

    3. .ValueOf() OR .getString()

    Don't know In your case why it is not working ? (may be because the string itself containing the quotes) other wise the best way is to Convert the JSONValue to the String as String.ValueOf(testValue);

    OR

    childJSONObject.getString("name");

    Otherwise give preference as : 3 > 2 > 1