80,351
社区成员
发帖
与我相关
我的任务
分享
public static Object jsonEnclose(Object obj) {
try {
if (obj instanceof Map) { //如果是Map则转换为JsonObject
Map<String, Object> map = (Map<String, Object>)obj;
Iterator<Map.Entry<String, Object>> iterator = map.entrySet().iterator();
JSONStringer jsonStringer = new JSONStringer().object();
while (iterator.hasNext()) {
Map.Entry<String, Object> entry = iterator.next();
jsonStringer.key(entry.getKey()).value(jsonEnclose(entry.getValue()));
}
JSONObject jsonObject = new JSONObject(new JSONTokener(jsonStringer.endObject().toString()));
return jsonObject;
} else if (obj instanceof List) { //如果是List则转换为JsonArray
List<Object> list = (List<Object>)obj;
JSONStringer jsonStringer = new JSONStringer().array();
for (int i = 0; i < list.size(); i++) {
jsonStringer.value(jsonEnclose(list.get(i)));
}
JSONArray jsonArray = new JSONArray(new JSONTokener(jsonStringer.endArray().toString()));
return jsonArray;
} else {
return obj;
}
} catch (Exception e) {
// TODO: handle exception
Log.e("jsonUtil--Enclose", e.getMessage());
return e.getMessage();
}
}
这是转换的方法
JsonObjectRequest objRequest = new
JsonObjectRequest
("http://api2.juheapi.com/static/city",
params,
new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject obj) {
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
error.getMessage();
}
});
这个是请求
final Map<String, Object> map = new HashMap<String, Object>();
map.put("Key", MyAppclition.hotelkey);
map.put("Province",citys);
final JSONObject params= (JSONObject) jsonEnclose(map); //把json参数封装起来
其实传递的就是一个json字符串