JSONObject toJSONString错误

177 篇文章 6 订阅

1.  com.alibaba.fastjson.JSONObject 继承了JSON,可以使用其2个重要的方法:

Model model = new Model();
String json = JSONObject.toJSONString(model); // serializes model to Json
Model model2 = JSONObject.parseObject(json, Model.class); // deserializes json into model2
即可以将json字符串转为json对象,如果该json对象的内容是可预期的对象类型,那么可以通过Model model2 = JSONObject.parseObject(json, Model.class); 取得预期的对象;

如果是不可预期的json字符串时,但有固定的key,则可通过JSONObject jsonObject = JSONObject.parseObject(jsonStr);

然后通过 jsonObject.getString("key");等基本方法获取key对于的value.

2. 但是,在使用时,需要注意的地方,并非所有的对象,都能通过JSONObject.toJSONString(model) 转换成功。

例如:在接入阿里语音验证码时,对SingleCallByTtsRequest请求对象使用以上方法时,就会转换报错。

SingleCallByTtsRequest extends RpcAcsRequest<SingleCallByTtsResponse>
 
RpcAcsRequest<T extends AcsResponse> extends AcsRequest<T>
 
SingleCallByTtsResponse extends AcsResponse
 
他们的继承关系如上,这里并未对错误原因进行深入分析,猜测是因为其中有相互引用导致解析转换失败。

3. 默认过滤掉值为null的key

public static String toJSONString(Object object):
该方法将实体对象转换成Json字符串时默认忽略值为null的属性。

public static String toJSONString(Object object, SerializerFeature… features):
该方法将实体对象转换成Json字符串时,如果不传递参数SerializerFeature.WriteMapNullValue,则忽略值为null的属性。
 
————————————————
版权声明:本文为CSDN博主「陌下微尘」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_33045443/article/details/90059429

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值