1

我的应用程序使用骆驼休息 (2.15.2) 来捕获 POST json 字符串,然后使用 jettison 转换为 JSON 对象。它在正常请求下工作正常。

POST request: {"request"={"lname"="aaa", "fname"="bb"}}

1. String body = exchange.getIn().getBody(String.class);
2. JSONObject obj = new JSONObject(body);

当我调试时,变量body = {request={lname=aaa, fname=bb}}. 第 2 行返回一个 JSONObject。到目前为止,一切都很好

如果我们尝试另一个请求:

{"request"={"lname"="   ", "fname"="aa"}}

然后body = {request={lname= , fname=aa}} line2 返回异常。

你能帮我解决这个问题吗:将包含具有空值字符串的元素的 json 字符串转换为 json 对象。

在我的场景中,上述请求是可以接受的。

错误:

org.codehaus.jettison.json.JSONException:缺少值。在 org.codehaus.jettison.json.JSONTokener.syntaxError(JSONTokener.java:463) 的 {request={lname= , fname=aa}} 的字符 15 处 org.codehaus.jettison.json.JSONTokener.nextValue(JSONTokener. java:356) 在 org.codehaus.jettison.json.JSONObject.(JSONObject.java:230) 在 org.codehaus.jettison.json.JSONTokener.newJSONObject(JSONTokener.java:412) 在 org.codehaus.jettison.json。 JSONTokener.nextValue(JSONTokener.java:327) 在 org.codehaus.jettison.json.JSONObject.(JSONObject.java:230) 在 org.codehaus.jettison.json.JSONObject.(JSONObject.java:311)

4

0 回答 0