解决json string转object,value值存在英语双引号,无法解析问题

我们从其他模块接收到一个JSON串,数据格式如下:

{"videos":[{"vid":26975741,"pid":0,"mid":61733563,"name":"《乐高大电影:蝙蝠侠》新曝预告  蝙蝠侠成"熊孩子"爹"}]}

对获取到的json进行string转object的时候,采用eval()、JSON.parse()均无法解析,原因为name的value值中存在英文双引号。
解决方案:
保存数据的时候,用正则表达式把英文双引号替换为中文双引号

var reg=new RegExp("\"", "g");
objectJson.name = objectJson.name.replace(reg, "”");

这个问题的解决思路为:规范保存到数据库的数据,而不是想办法解析value值存在英语双引号的json。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
`JSONObject.fromObject()`是`net.sf.json.JSONObject`类的方法,它会将一个对象换为JSON字符串。默认情况下,换后的JSON字符串会将键和都用双引号括起来。 如果你希望保留键和不带双引号的格式,可以使用`net.sf.json.JsonConfig`类的`setJsonPropertyFilter()`方法来设置一个属性过滤器。下面是示例代码: ```java import net.sf.json.JSONObject; import net.sf.json.JsonConfig; import net.sf.json.util.PropertyFilter; import java.util.HashMap; import java.util.Map; public class Main { public static void main(String[] args) { Map<String, Object> map = new HashMap<>(); map.put("key1", "value1"); map.put("key2", "value2"); JsonConfig jsonConfig = new JsonConfig(); jsonConfig.setJsonPropertyFilter(new PropertyFilter() { @Override public boolean apply(Object source, String name, Object value) { return false; } }); JSONObject jsonObject = JSONObject.fromObject(map, jsonConfig); String jsonString = jsonObject.toString(); System.out.println(jsonString); } } ``` 在上述代码中,我们创建了一个`JsonConfig`对象,并设置了一个属性过滤器,该过滤器始终返回`false`,表示所有属性都不会被过滤。然后,我们使用`JSONObject.fromObject()`方法将`map`对象换为JSON字符串,并传入了配置对象`jsonConfig`。 输出结果如下: ``` {key1:value1,key2:value2} ``` 如你所见,换后的JSON字符串中的键和都没有双引号括起来。请注意,这种格式不符合标准的JSON规范,因为标准的JSON要求键和都使用双引号括起来。这种格式可能无法被所有的JSON解析器正确解析

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值