请问下fastjson在反序列化json时候,遇到key里面有点号.怎么办

一刀 发布于 2014/03/19 11:57
阅读 2K+
收藏 0

比如我有如下的json字符串:


{
        "batch.password": "#",
        "batch.username": "batch_user"
}
然后我想反序列化为虾米的java类:



class User {
    public String username;
    public String password;
}

如果我在username字段上面加入:@JSONField(name = "batch.username"),会报错

java.lang.ClassFormatError: Illegal field name ...


有人有类似的情况么?


加载中
0
曾贵

fastjson不是有注解写法吗,你上面可以这样

class User {

@JSONField(name = "batch.username")
    public String username;

@JSONField(name = "batch.password")
    public String password;
}

0
曾贵

改成" @JSONField(name = " batch\\.username ")"

0
一刀
一刀

引用来自“曾贵”的评论

改成" @JSONField(name = " batch\\.username ")"

试过了,不行的。
@JSONField(name = "com\\.google\\.com")
    public String name;
还是报错:
Exception in thread "main" java.lang.ClassFormatError: Illegal field name "com\.google\.com_asm_prefix__" in class Fastjson_ASM_FastJson_1
请问你自己试过了麽?
0
wgzh159
wgzh159

我想问下,为什么要这样做呢

0
一刀
一刀

引用来自“wgzh159”的评论

我想问下,为什么要这样做呢

因为有个老系统的接口返回的json格式数据里面很多key都有.号,  让他们去改接口以及不可能了,数据量太大了。

0
youthflies
youthflies
有解决方法了么?
0
一刀
一刀

引用来自“youthflies”的评论

有解决方法了么?
没有!
返回顶部
顶部