关于Json数据结构的概念和内容这里不必过多讲解(网上资料很多),在我们很多项目中都使用Json来传递数据,以及作为Api   接口输入输出的参数,因为Json数据结构相对确实比较统一、清晰、简化,有助于减少和优化开发的处理代码,很多不同系统可能是用不同语言、不同框架写的,如果没有一个统一的数据结构,那么代码可能会千变万化,无法把握。如果有了Json统一的结构,那么我们去做统一的解析处理,统一的接口、实现方法允许不同。这样也便于对系统的整合和重构。那么我们来看看使用Json解析处理有哪些技巧吧。

       这里,我们使用编程语言是php作为范例讲解。

  • 1.解析Json消除转义符处理。

在php中是函数stripslashes(),可以对json字符串中包含的转义符去掉处理。

范例代码:

 

$str='{"name":"aa","age":20}';
echo json_encode($str);

上述直接解析json,我们看到的结果如图:

java去除json转义符 json去除转义字符_转义符

我们看到其中包含了很多转义符“\ “,我们再看下使用stripslashes函数处理过的结果。

$str='{"name":"aa","age":20}';
echo stripslashes(json_encode($str));

 

java去除json转义符 json去除转义字符_转义符_02

 我们看到已经去掉了转义符,这样更加清晰了。

  • 2.包含中文字符的处理

Json中包含中文,我们要做解析处理转换才能看到正常的中文,我们看范例代码。

$str='{"name":"中国","性别":"男"}';
echo stripslashes(json_encode($str));

返回的结果如图

java去除json转义符 json去除转义字符_数据结构_03

 我们看到的是中文乱码,其实是unicode字符编码。我们使用转换方法做处理,如下

$str='{"name":"中国","性别":"男"}';
echo stripslashes(json_encode($str,JSON_UNESCAPED_UNICODE));

结果如下图

java去除json转义符 json去除转义字符_转义符_04

这样, 我们增加的一个参数JSON_UNESCAPED_UNICODE,这样就处理了中文转换的问题。

  • 3.解析Json,验证错误

我们根据Json数据结构的规范,排查Json可能的错误,然后进行修正处理。

推荐一个在线解析Json,验证错误的网站,网址:https://www.json.cn/,我们可以把json字符串放在这里,解析会自动检查验证,指出可能错误的地方,方便我们排查自己的程序。

可能还有更多,更好的工具来辅助我们做解析验证的工作。

 

本文持续改进完善,不断总结优化...