<>1. 修改之前
DwxxDTO dwxxDTO = new DwxxDTO(); dwxxDTO.setEntname("测试公司"); dwxxDTO.setUniscid
("91110100000000000Y"); dwxxDTO.setOrgancode("MA0000000"); ZgcbdjDTO zgcbdjDTO =
new ZgcbdjDTO(); zgcbdjDTO.setCpdata(dwxxDTO); zgcbdjDTO.setType(type);
JSONObject jsonObject = (JSONObject) JSONObject.toJSON(zgcbdjDTO); //方式一 Map<
String, String> body = new HashMap<String, String>(); body.put("sha1", zaiyao);
body.put("data", jsonObject.toString()); String bodyStr = JSONObject.
toJSONString(body); //方式一打印结果 { "sha1": "tdvbaaaaaaaaA=", "data":
"{\"type\":\"2\",\"cpdata\":{\"uniscid\":\"91110100000000000Y\",\"entname\":\"测试公司\",\"organcode\":\"MA0000000\"}}"
} //方式二 JSONObject body = new JSONObject(); body.put("sha1", zaiyao); body.put(
"data", jsonObject.toString()); String bodyStr = JSONObject.toJSONString(body);
//方式二打印结果 { "sha1": "tdvbaaaaaaaaA=", "data":
"{\"type\":\"2\",\"cpdata\":{\"uniscid\":\"91110100000000000Y\",\"entname\":\"测试公司\",\"organcode\":\"MA0000000\"}}"
}
<>2. 原因:
有可能是因为jsonboject中包含另一个json串,应该把里面那个json串提取出来,用fluenPut(key,value)方法放到jsonobject中;
<>3. 修改之后
DwxxDTO dwxxDTO = new DwxxDTO(); dwxxDTO.setEntname("测试公司"); dwxxDTO.setUniscid
("91110100000000000Y"); dwxxDTO.setOrgancode("MA0000000"); ZgcbdjDTO zgcbdjDTO =
new ZgcbdjDTO(); zgcbdjDTO.setCpdata(dwxxDTO); zgcbdjDTO.setType(type);
JSONObject jsonObject = (JSONObject) JSONObject.toJSON(zgcbdjDTO); JSONObject
body= new JSONObject(); body.fluentPut("sha1",zaiyao); body.fluentPut("data",
jsonObject); System.out.println("body入参:" + bodyStr); //打印结果 { "sha1":
"tdvbaaaaaaaaA=", "data": { "type": "2", "cpdata": { "uniscid":
"91110100000000000Y", "entname": "测试公司", "organcode": "MA0000000" } } }
<>4. fluentPut源码:
public JSONObject fluentPut(String key, Object value) { map.put(key, value);
return this; }