Post 请求参数 数据装载
一、普通JSON数据装载
Activity:
Map<String, String> map = new HashMap<String, String>();
map.put("storeCode", "12244");
request.setParams(Utils.getRequestData(mContext, map));
Util:
//获取请求参数
public static Map<String, String> getRequestData(Context mContext, Map<String, String> map){
String requestData = JsonUtil.map2json(map);
Map<String, String> requestMap = new HashMap<>();
requestMap.put("requestData", requestData);
return requestMap;
}
/**
* Map-->Json
*
* @param map
* @return
*/
public static String map2json(Map<?, ?> map) {
StringBuilder json = new StringBuilder();
json.append("{");
if (map != null && map.size() > 0) {
for (Object key : map.keySet()) {
json.append(object2json(key));
json.append(":");
json.append(object2json(map.get(key)));
json.append(",");
}
json.setCharAt(json.length() - 1, '}');
} else {
json.append("}");
}
return json.toString();
}
另外一种方法:
Activity
HashMap<String, String> params = new HashMap<String, String>();
params.put("member_id", userItem.getName());
params.put("member_pwd", userItem.getPassword());
JSONObject paramsJO = Utils.mapToJSONObject(params);
params.clear();
params.put("requestData", paramsJO.toString());
request.setParams(params);
Utils:
/**
* 将HashMap转换成JSONObject
*
* @param hm
* @return
*/
public static JSONObject mapToJSONObject(HashMap hm) {
JSONObject jsonObject = new JSONObject();
Set set = hm.entrySet();
java.util.Iterator it = hm.entrySet().iterator();
while (it.hasNext()) {
java.util.Map.Entry entry = (java.util.Map.Entry) it.next();
String key = (String) entry.getKey();
Object value = entry.getValue();
try {
jsonObject.put(key, value);
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return jsonObject;
}
二、JSONArray 参数装载,比如购物车下单。选择多个商品。
Activity :
Map<String, String> map = new HashMap<String, String>();
JSONObject jsonObject = new JSONObject();
JSONArray product_info = new JSONArray();
try {
jsonObject.put("store_code", partialReceiptList.getStore_code());
jsonObject.put("source_order_code", partialReceiptList.getSource_order_code());
jsonObject.put("dealer_code", dealer_code);
for (PartialReceiptProduct product : partialReceiptList.getProduct_info()) {
JSONObject jsonObject1 = new JSONObject();
try {
jsonObject1.put("sku_code", product.getSku_code());
jsonObject1.put("unit_code", product.getUnit_code());
jsonObject1.put("amount", product.getAmount());
} catch (JSONException e) {
e.printStackTrace();
}
product_info.put(jsonObject1);
}
jsonObject.put("product_list", product_info);
} catch (JSONException e) {
e.printStackTrace();
}
map.clear();
map.put("requestData", jsonObject.toString());
request.setParams(map);
三、其他数据类型转成JSON
/**
* Map-->Json
*
* @param map
* @return
*/
public static String map2json(Map<?, ?> map) {
StringBuilder json = new StringBuilder();
json.append("{");
if (map != null && map.size() > 0) {
for (Object key : map.keySet()) {
json.append(object2json(key));
json.append(":");
json.append(object2json(map.get(key)));
json.append(",");
}
json.setCharAt(json.length() - 1, '}');
} else {
json.append("}");
}
return json.toString();
}
/**
* Object-->Json
*
* @param map
* @return
*/
public static String object2json(Object obj) {
StringBuilder json = new StringBuilder();
if (obj == null) {
json.append("\"\"");
} else if (obj instanceof String || obj instanceof Integer
|| obj instanceof Float || obj instanceof Boolean
|| obj instanceof Short || obj instanceof Double
|| obj instanceof Long || obj instanceof BigDecimal
|| obj instanceof BigInteger || obj instanceof Byte) {
json.append("\"").append(string2json(obj.toString())).append("\"");
} else if (obj instanceof Object[]) {
json.append(array2json((Object[]) obj));
} else if (obj instanceof List) {
json.append(list2json((List<?>) obj));
} else if (obj instanceof Map) {
json.append(map2json((Map<?, ?>) obj));
} else if (obj instanceof Set) {
json.append(set2json((Set<?>) obj));
} else {
// json.append(bean2json(obj));
}
return json.toString();
}
/**
* List-->Json
*
* @param map
* @return
*/
public static String list2json(List<?> list) {
StringBuilder json = new StringBuilder();
json.append("[");
if (list != null && list.size() > 0) {
for (Object obj : list) {
json.append(object2json(obj));
json.append(",");
}
json.setCharAt(json.length() - 1, ']');
} else {
json.append("]");
}
return json.toString();
}
/**
* 数组Array-->Json
*
* @param map
* @return
*/
public static String array2json(Object[] array) {
StringBuilder json = new StringBuilder();
json.append("[");
if (array != null && array.length > 0) {
for (Object obj : array) {
json.append(object2json(obj));
json.append(",");
}
json.setCharAt(json.length() - 1, ']');
} else {
json.append("]");
}
return json.toString();
}
/**
* Set-->Json
*
* @param map
* @return
*/
public static String set2json(Set<?> set) {
StringBuilder json = new StringBuilder();
json.append("[");
if (set != null && set.size() > 0) {
for (Object obj : set) {
json.append(object2json(obj));
json.append(",");
}
json.setCharAt(json.length() - 1, ']');
} else {
json.append("]");
}
return json.toString();
}
/**
* String-->Json
*
* @param map
* @return
*/
public static String string2json(String s) {
if (s == null)
return "";
StringBuilder sb = new StringBuilder();
for (int i = 0; i < s.length(); i++) {
char ch = s.charAt(i);
switch (ch) {
case '"':
sb.append("\\\"");
break;
case '\\':
sb.append("\\\\");
break;
case '\b':
sb.append("\\b");
break;
case '\f':
sb.append("\\f");
break;
case '\n':
sb.append("\\n");
break;
case '\r':
sb.append("\\r");
break;
case '\t':
sb.append("\\t");
break;
case '/':
sb.append("\\/");
break;
default:
if (ch >= '\u0000' && ch <= '\u001F') {
String ss = Integer.toHexString(ch);
sb.append("\\u");
for (int k = 0; k < 4 - ss.length(); k++) {
sb.append('0');
}
sb.append(ss.toUpperCase());
} else {
sb.append(ch);
}
}
}
return sb.toString();
}
1)生成 JSON:
方法 1、创建一个 map,通过构造方法将 map 转换成 json 对象
Map<String, Object> map = new HashMap<String, Object>();
map.put("name", "zhangsan");
map.put("age", 24);
JSONObject json = new JSONObject(map);
方法 2、创建一个 json 对象,通过 put 方法添加数据
JSONObject json=new JSONObject();
json.put("name", "zhangsan");
json.put("age", 24);
2)生成 JSON 数组:
创建一个 list,通过构造方法将 list 转换成 json 对象
Map<String, Object> map1 = new HashMap<String, Object>();
map1.put("name", "zhangsan");
map1.put("age", 24);
Map<String, Object> map2 = new HashMap<String, Object>();
map2.put("name", "lisi");
map2.put("age", 25);
List<Map<String, Object>> list=new ArrayList<Map<String,Object>>();
list.add(map1);
list.add(map2);
JSONArray array=new JSONArray(list);
System.out.println(array.toString());