当前位置: 首页 > 知识库问答 >
问题:

有效JSON上的JsonParseException

马绪
2023-03-14

我在从客户端代码调用RESTful服务时遇到了一个问题。我已经使用CXF/Jackson编写了RESTful服务,部署到localhost中,并成功地使用RESTClient进行了测试。下面是服务代码的一个片段:

@POST
@Produces("application/json")
@Consumes("application/json")
@Path("/set/mood")
public Response setMood(MoodMeter mm) {

    this.getMmDAO().insert(mm);
    return Response.ok().entity(mm).build();
}

模型类和dao可以成功地工作,使用RESTClient服务本身也可以很好地工作。但是,当我试图从Java脚本调用这个服务时,我在服务器端得到以下错误:

//var json = '{"mood_value":8,"mood_comments":"new comments","user_id":5,"point":{"latitude":37.292929,"longitude":38.0323323},"created_dtm":1381546869260}';
//var jsonData = JSON.parse(json);

var pointData = new Object();
pointData.latitue = 23.43433;
pointData.longitude = 25.393939;

var jsonData = new Object();
jsonData.mood_value = 8;
jsonData.mood_comments= "sample comment";
jsonData.user_id = 10;
jsonData.point = pointData;
jsonData.created_dtm = 1381546869260;

$.ajax({
      url: 'http://localhost:8080/moodmeter/app/service/set/mood',
      dataType: 'json',
      data: jsonData,
      type: "POST",
      contentType: "application/json"
    });

公共类情绪计{

Point point;
int user_id;
int mood_value;
Timestamp created_dtm;
String mood_comments;

public MoodMeter() {
    super();
}

public MoodMeter(Point point, int user_id, int mood_value,
        Timestamp created_dtm, String mood_comments) {
    super();
    this.point = point;
    this.user_id = user_id;
    this.mood_value = mood_value;
    this.created_dtm = created_dtm;
    this.mood_comments = mood_comments;
}

public Point getPoint() {
    return point;
}
public void setPoint(Point point) {
    this.point = point;
}
public int getUser_id() {
    return user_id;
}
public void setUser_id(int user_id) {
    this.user_id = user_id;
}
public int getMood_value() {
    return mood_value;
}
public void setMood_value(int mood_value) {
    this.mood_value = mood_value;
}
public Date getCreated_dtm() {
    return created_dtm;
}
public void setCreated_dtm(Timestamp created_dtm) {
    this.created_dtm = created_dtm;
}
public String getMood_comments() {
    return mood_comments;
}
public void setMood_comments(String mood_comments) {
    this.mood_comments = mood_comments;
}

}

共有1个答案

空夕
2023-03-14

您需要检查服务器得到的确切内容:它不是您的代码示例所显示的内容。

 类似资料:
  • 下面是我的文件: 更新: 我运行了一个稍微不同的命令: PS c:\users\me\downloads\curl-7.64.1-win64-mingw\bin>.\curl.exe-h“content-type:application/json”-xput'http://127.0.0.1:31311/bo ok/1'-d'{\“indexid\”:\“book\”,\“documentid\”

  • 问题内容: 我正在尝试从Web服务器读取.json文件。 我从服务器接收到的JSON在http://jsonlint.com/上报告无效: 它显示以下测试结果: 在使用PHP解析之前,如何将其转换为VALID JSON? 问题答案: 所有键(preOpen,preClose等)都必须是字符串,因此它们需要用双引号引起来。 ===更新=== 如果您的Json-String无效,则可以使用以下脚本对其

  • 我有包含非法字符的json 我想要从服务器spring发送到客户端的明文,这样客户端就可以获得完整的数据。 如何将字符串的非法字符替换为有效的json对象?

  • 问题内容: 我正在尝试从YouTube API解析json响应数据,但我一直收到错误消息。 这是令人窒息的片段: ..发生这种情况: 我已经确认它是有效的json,并且无法控制其格式,因此如何克服此错误? 问题答案: 您需要在“”“之前添加一个,或全部替换为。从其他地方读取json时,您不必担心这件事,而是字符串本身中的事。 看到这里获取更多信息

  • 检查提供的参数是否是有效的JSON。 使用 JSON.parse() 和 try... catch 块来检查提供的参数是否是有效的JSON。 const isValidJSON = obj => { try { JSON.parse(obj); return true; } catch (e) { return false; } }; isValidJSON(

  • 我试图尽可能地保持代码清晰,所以我决定创建许多测试类,包括测试项,例如: 我的测试用例是: 我在堆栈跟踪中看到了my MockHttpServletResponse,在那里我可以找到“TaskEstablishedDate”:“2020-12-10t09:12:45.000+00:00”。此外,如果我复制整个响应并将其传递到https://jsonformatter.curiousconcept.