这是用于检索数据的grails的后端
def addMessageA() {
JSONObject requestJson= request.JSON;
Message message = new Message();
message.message = requestJson.message;
message.category = Category.get(requestJson.cId);
message.heading = requestJson.heading;
message.date= new Date();
message.electionArea = ElectionArea.get(requestJson.eId)
message.palika = Palika.get(requestJson.pId)
message.ward = Ward.get(requestJson.wId)
message.member = requestJson.name;
def fbId = requestJson.memberFbId
message.memberFbId = fbId;
message.phone = requestJson.phone;
JSONObject object = new JSONObject();
if (message.save(flush: true, failOnError: true)) {
object.put("save", "success")
} else {
object.put("save", "fail")
}
render object;
}
这是其工作的格式,但我想使用方括号而不是花括号。我正在使用post方法。
这是后端的网址
http://localhost:8080/back/message/addMessageA
这是将数据发送到后端json格式的格式,我希望使用方括号而不是大括号。
{
消息:“कुलगार्हस्थथत्पादनवृद्धिदर6.9 4प्रतिशतपुग्ने”,
cId:“3”,
标题:“कुल”,
eId:“70”,
pId:“740”,
wId:“5555”,
名称:“सुमन先生”,
memberFbId:“012306547891234”,
电话:“986032764”
}
答案 0 :(得分:1)
JSON是一种特定的语法和格式(请参阅http://www.json.org/)。它被设计为最小化,但这种最小语法旨在非常具体地表示数据元素。简而言之,
直接用括号替换大括号将不再与JSON语法一致。
[ message : " … ", cId : "3", heading : " … ", eId : "70", pId : "740", wId : "5555", name : " … ", memberFbId : "012306547891234", phone : "986032764"
]
为什么内容必须用括号括起来?根据您的答案,一个选项可能是将现有对象包装在括号中,创建一个包含1个元素的数组。
[ { message : " … ",cId : "3", heading : " … ", eId : "70", pId : "740", wId : "5555", name : " … ", memberFbId : "012306547891234", phone : "986032764"
}
]
这是合法的JSON。我不确定request.JSON
的JSONObject是否会正确解释这个问题(过去曾经存在问题)。您可以通过其getInputStream()拉取正文内容,并使用JSON解析器将文本解释为JSON数组。然后,数组的第一个元素与当前实现中使用的对象相同。
或者,您可以阅读内容文本,使用大括号转换开头和右括号,将非JSON转换为有效的JSON,将其转换为JSONObject,然后从那里继续。