Reputation: 22646
I have the following function that uses org.json.simple to create JSON object.
public JSONObject createJSONRequest() {
// /* Create JSON Objects */
JSONObject jsonObject = new JSONObject();
Map<String, String> map = new HashMap<String, String>();
map.put(ACCESS_TOKEN_KEY, mAccessToken);
map.put(SESSION_ID_KEY, mSessionId);
map.put(SNAPZ_ID_KEY, mSnapzId);
map.put(EMAIL_KEY, mEmail);
map.put(EMAIL_PWD_KEY, mEmailPwd);
JSONArray list = new JSONArray();
list.add(map);
jsonObject.put("parameters", list);
jsonObject.put("function", "verifyEmail");
return jsonObject;
}
However, I keep getting this warning when I use lint checker.
[unchecked] unchecked call to add(E) as a member of the raw type ArrayList
list.add(map);
^
where E is a type-variable: E extends Object declared in class ArrayList
warning: [unchecked] unchecked call to put(K,V) as a member of the raw type HashMap
jsonObject.put("parameters", list);
^
where K,V are type-variables:
K extends Object declared in class HashMap
V extends Object declared in class HashMap
warning: [unchecked] unchecked call to put(K,V) as a member of the raw type HashMap
jsonObject.put("function", "verifyEmail");
I have tried to use the generic type. HashMap uses generics, but the other objects JSONObject
JSONArray
don't.
Many thanks for any suggestions,
Upvotes: 5
Views: 14865
Reputation: 4504
You are getting this warning because the library uses raw type collections internally.
To hide this warning you annotate your method with @SuppressWarnings("unchecked")
.
If you want to use json library with generics support. You can go for Google GSOn. I have used it myself in many projects. It is easy and uses generic collections.
Upvotes: 17