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

问题与i/o没有找到序列化器类org.json.JSONObject和没有发现属性创建BeanSerializer

毛成济
2023-03-14

不确定发生了什么,完全错误是:

Problem with i/o No serializer found for class org.json.JSONObject and no properties        discovered to create BeanSerializer (to avoid exception, disable SerializationConfig.Feature.FAIL_ON_EMPTY_BEANS) )

我正在尝试向RESTful服务发送PUT请求。我正在解析POST并为PUT的“ID”和“启用”发送修改后的键/值对。

@Test(dependsOnMethods= {"Post"})
public void Put() throws IOException  {

logger.logTestActivity("Testing FORM data POST using Excel file");
requestBuilder = new RequestSpecBuilder();

String jsonString = "";
boolean enabledModify = false;

try {
 BufferedReader in = new BufferedReader(new FileReader(
 xmlTest.getParameter("json-post")));

String str;

while ((str = in.readLine()) != null) {
      jsonString += str;
        }

JSONObject jsonObjPut = new JSONObject(jsonString);
jsonObjPut.put("_id", createUserId);
jsonObjPut.put("enabled",enabledModify);

    System.out.println(jsonObjPut.toString());
in.close();

    requestBuilder.setContentType(ContentType.JSON);
    requestSpecification = requestBuilder.build();
    responseBuilder.expectStatusCode(Integer.parseInt(xmlTest
    .getParameter("http-status-code-200")));
    responseBuilder.expectContentType(ContentType.JSON);
    responseSpecification = responseBuilder.build();    
System.out.println(createUserId);

String responseJson = given().body(jsonObjPut).         
when().put("/" + createUserId).asString();

    System.out.println(responseJson);

logger.logTestActivity("Finished testing FORM data POST using Excel file");
} catch (AssertionError e ) {
  logger.logTestActivity(
        "Error testing FORM data post: " + e.getMessage(),logger.ERROR);

      System.out.println("REST URL: " + RestAssured.baseURI + " "
                + RestAssured.port + " " + RestAssured.basePath );
  Assert.fail("Error testing FORM data POST: " + e.getMessage());
        throw e;
} catch (IOException | JSONException e) {
   System.out.println("Problem with i/o" + e.getMessage()); 
    }
}

createUserID是一个全局变量,它是从POST解析的ID。

正在解析的JSON文件如下所示:

{
"enabled" : false,
"_id" : "fdse332a-22432d-4432b"
}

在测试之前的方法中,我正在使用所有适当的urlendpoint设置重启。。。

此外,PUT也失败了,出现了NULLPointerException错误。这可能是未来的另一个帖子!

共有2个答案

谢洛城
2023-03-14

我在使用java Spring rest Api时也遇到了同样的问题。这是在扔豆制品。使用JsonNODE类而不是JSONObject。

万俟亦
2023-03-14

解决方案:我没有将我的JSON对象转换为字符串,当传递给rest时。

String responseJson = given().body(jsonObjPut.toString).

这就成功了。我现在使用生成的ID修改我现有的json并在RESTful服务上成功执行PUT。

 类似资料:
  • 问题内容: 从Web服务获取Json Array的JSON作为响应 在JsonArray中获得响应后,在读取Json Array的Json对象时出现错误: 找不到针对类org.json.JSONObject的序列化程序,也没有发现创建BeanSerializer的属性(为避免异常,请禁用SerializationConfig.Feature.FAIL_ON_EMPTY_BEANS)) 问题答案:

  • 问题内容: 从Web服务获取Json Array的JSON作为响应 在JsonArray中获取响应后,在读取Json Array的Json对象时出现错误: 找不到针对类org.json.JSONObject的序列化程序,也没有发现创建BeanSerializer的属性(为避免异常,请禁用SerializationConfig.Feature.FAIL_ON_EMPTY_BEANS)) 问题答案:

  • 问题内容: 我正在处理,&,但出现此错误。 请在下面检查我的实体 我该如何解决? 问题答案: 通过休眠代理对象进行延迟加载时,我遇到了类似的问题。通过用以下方式注释具有延迟加载的私有属性的类来解决此问题: 我假设您可以在代理对象上添加将JSON序列化破坏到该注释的属性。 问题在于实体是延迟加载的,序列化是在实体完全加载之前发生的。

  • 问题内容: 我正在处理,&,但出现此错误。 请在下面检查我的实体 我该如何解决? 问题答案: 通过hibernate代理对象进行延迟加载时,我遇到了类似的问题。通过用以下方式注释具有延迟加载的私有属性的类来解决此问题: 我假设您可以在代理对象上添加打破JSON序列化到该批注的属性。 问题在于实体是延迟加载的,序列化是在实体完全加载之前发生的。

  • 无法编写JSON:找不到org.json.jsonObject类的序列化程序,也找不到创建BeanSerializer的属性(为了避免异常,禁用SerializationFeature.fail_on_empty_beans) UserService.getUserList():

  • 您好,我正在建立一个动物园微服务,包括动物、员工、客户和价格表。我的动物微服务可以工作,但在我的员工微服务中,我遇到了一个错误,即没有为类型“EmployeeModel”找到属性“name”。在问这个问题之前,我已经在网上搜索了几个小时,还有一些类似的问题。我在模型中没有“名字”employee_name,我只是感到困惑,不知道如何修复它。任何指导/建议/信息将不胜感激:)第一次发布,所以我希望我