java为什么要在对象前后添加引号?是真的吗
我想用java类发送json请求,但当我尝试发送jsonObject时,我认为传出对象出错了
这是真实的对象:
{
"brandCode":659599,
"isNotAutoSendIYS": "false",
"consentData": {
"consentDate":"2020-07-20 00:00:00",
"source":"HS_MESAJ",
"status":"ONAY",
"retailerCode":null,
"retailerAccess":[],
"recipient":"ornek@mysoft.com.tr",
"recipientType":"BIREYSEL",
"type":"EPOSTA"
}
}
这是我的类jsonObject:
{
"brandCode":659599,
"isNotAutoSendIYS":false,
"consentData":"{\"consentDate\":\"2020-07-20 00:00:00\"
,\"source\":\"HS_MESAJ\",
\"status\":\"ONAY\",
\"retailerCode\":null,
\"retailerAccess\":[\"\"],
\"recipient\":\"ornek@mysoft.com.tr\",
\"recipientType\":\"BIREYSEL\",
\"type\":\"EPOSTA\"}"
}
如果您注意到,双引号是在数据对象之后打开的,而在对象末尾的双引号是关闭的。我如何修复这种情况,或者这种情况是真实的?我正在使用ToStringBuilder类
这是DataReqType。类别:
public String toStringValidate(){
return new ToStringBuilder(this, ToStringStyle.JSON_STYLE).append("brandCode", brandCode).append("isNotAutoSendIYS", isNotAutoSendIYS).append("consentData", consentData.toStringValidate()).toString();
}
这是数据。类别:
public String toStringValidate(){
return new ToStringBuilder(this, ToStringStyle.JSON_STYLE).append("consentDate", consentDate).append("source", source).append("status", status)
.append("retailerCode",retailerCode).append("retailerAccess",retailerAccess).append("recipient",recipient).append("recipientType",recipientType)
.append("type",type).toString();
}
# 1 楼答案
当你这样做的时候:
就
append
而言,所附加的值是一个字符串,因此必须进行转义。没有办法知道它实际上是一个JSON值,可以“原始”插入如果你想要JSON,我会使用一个真正的JSON库,比如Gson
如果您只需要一个字符串,该字符串对于成员具有不同值的对象是唯一的,您可以执行以下操作: