无法从json字符串实例化类型的值

哈德夫

我在用户和组之间存在多对多的双向关系。

    @Entity
    @Table(name = "UserTBL")
    public class User {

    @Id
    @SequenceGenerator(name = "user_generator", sequenceName = "user_seq", allocationSize = 1, initialValue = 1)
    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "user_generator")
    private Long id;

    private String username;

    private String password;

    @ManyToMany
    private List<Group> groups;
}


@Entity
@Table(name = "GroupTBL")
public class Group {

    @Id
    @SequenceGenerator(name = "Group_generator", sequenceName = "group_seq", allocationSize = 1, initialValue = 1)
    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "Group_generator")
    private Long id;

    private String name;

    private String description;

    @ManyToMany(mappedBy = "groups")
    private List<User> users;
}

我正在使用Java jax-rs Web服务开发angular js applicaton,并且正在使用jackson处理json绑定,但出现此异常:

无法从JSON字符串实例化类型[简单类型,类com.blog.models.Group]的值;没有单字符串构造函数/工厂方法(通过引用链:com.blog.models.User [“ groups”])

这是我发送到服务器的json对象:

{  
   "groups":[  
      "{\"id\":1,\"name\":\"admin\",\"description\":null,\"users\":[]}",
      "{\"id\":2,\"name\":\"user\",\"description\":null,\"users\":[]}"
   ],
   "username":"hussien",
   "password":"ammar"
}

资源:

@Stateless
@Path("/users")
public class UserResource {

    @EJB
    private UserFacade userFacade;

    @POST
    @Consumes(MediaType.APPLICATION_JSON)
    public void createUser(User user) {
        userFacade.create(user);
    }
}
约翰·阿门

在客户端看来,您可能两次对JSON对象(组)进行了一次字符串化。您应该只调用一次。JSON应该是这样的:

{"groups":[
{"id":1,"name":"admin","description":null,"users":[]},
{"id":2,"name":"user","description":null,"users":[]}
],
"username":"hussien",
"password":"ammar"
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

无法从JSON字符串实例化类型的值;没有单字符串构造函数/工厂方法

无法从 JSON 字符串实例化 [简单类型,类 org.joda.time.LocalDateTime] 类型的值;没有单字符串构造函数/工厂方法

Firebase不从字符串值实例化类型的值

无法实例化类型 [...] 的值没有单字符串构造函数

JSON:InvalidFormatException:无法从字符串值构造int的实例

无法从字符串值('{');实例化java.util.LinkedHashMap类型的值;没有单字符串构造函数/工厂方法

以自定义格式的JSON序列化日期(无法从字符串值构造java.util.Date的实例)

com.fasterxml.jackson.databind.JsonMappingException:无法从字符串实例化类型[简单类型,类java.time.LocalDateTime]的值

JSON解析错误:无法从字符串反序列化类型为java.time.LocalDateTime的值

无法使用类型为“(键:字符串)”的索引对“JSON”类型的值进行下标

无法从字符串反序列化类型为java.time.LocalDateTime的值

涉及多个值/字符串时的类实例化

如何基于字符串值实例化对象

json:无法将字符串解组为main.test_struct类型的Go值

json:无法将字符串解组为[] main.KVU类型的Go值

JSON无法将对象解组为字符串类型的GO值

Docker返回“ json:无法将字符串解组为[] string类型的Go值”

字符串类型的json错误值无法转换为jsonobject

无法转换值类型“字符串”?到预期的参数类型“ inout字符串”

无法将“字符串”类型的值转换为预期的参数类型“绑定<字符串>”

无法将字符串值分配给打字稿枚举(初始化程序类型的字符串不可分配给变量类型)

无法访问原始类型值(字符串)的属性

无法分配类型为'String'的值?键入“字符串”

无法分配“字符串”类型的值?输入“UILabel?”

无法分配“字符串”类型的值?输入'Int'

无法分配“Int!”类型的值 输入“字符串”

无法分配“NSDictionary”类型的值?输入“字符串?”

无法在OpenAPI客户端中从字符串反序列化类型为java.time.OffsetDateTime的值

JSON使用已经作为值的JSON字符串对对象进行字符串化