go语言json处理

Python013

go语言json处理,第1张

json是一种经常使用的数据格式,下面总结一下json的使用

json与struct转换的话struct的属性必须首字母大写。

当用的多了就会发现一个致命的问题:go默认会将特殊字符转义采用以下方法可以解决:

处理方法1

处理方法2

不管是属性组成的还是Tag组成的json字符串,都可以正常的解析

tag:

json:"-" // 表示不进行序列化

IsOnSale bool json:"is_on_sale,string" //序列化后转成string

ProductID int64json:"product_id,omitempty" //为零值时忽略

序列化或者反序列化时可以指定类型,支持string,number和boolean

IsOnSale bool json:"is_on_sale,string"

注意:

正确使用第一个,第二个回报错

1、说明:json文件本身就是字符串文件,使用open函数就可以得到文件字符串内容,如果要解析文件则使用python3通过json模块load函数来实现。2、代码示例:首先编写一个json文件j.txt,内容如下:{"errno":1,"errmsg":"操作成功!","data":[]}python代码如下:import json# 读取文件内容whth open('j.txt', 'r') as fr:print(fr.read()())输出如下:{"errno":1,"errmsg":"操作成功!","data":[]}# 解析json文件with open('j.txt', 'r') as fr:o = json.load(fr)print(o['errno'])print(o['errmsg'])print(len(o['data']))输出如下:1操作成功!03、函数说明:load(fp, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw)反序列化fp(一个.read()包含 - 支持类文件对象一个JSON文件),以一个Python对象。object_hook是将与被调用的可选功能任何对象文本解码(一个``dict``)的结果。返回值object_hook将用来代替dict。此功能可用于实现自定义解码器(例如JSON-RPC级提示)。object_pairs_hook是将与被调用的可选功能任何对象的结果与对的有序列表字面解码。该的返回值object_pairs_hook将用来代替dict。此功能可用于实现依赖于定制解码器命令该键和值对被解码(例如,collections.OrderedDict会记得插入的顺序)。如果object_hook也定义了object_pairs_hook优先。要使用自定义JSONDecoder子类,与cls指定它kwarg否则JSONDecoder使用。4、其它说明:也可以使用json.loads函数来直接处理字符串,方法如下:o=json.loads('{"errno":0,"errmsg":"操作成功!","data":[]}')