业务场景:
有如下一个json数据:
{"class":"高三1班","student":{"name":"chen","sex":"男","age":18}}
需要提取student下的name值应该如何操作?假如后面需要在student里增加performance 字段,又如何操作?
问题分析:
- 首先确定的是这是一个可扩展的json数据,换句话说,json时里面的字段是会随着后面的需求变化而变化的。
- 在实际应用中,像这类json数据通常用于前后端交互时能实现一个动态扩展,服务端在不改变入参时动态获取接口接收的数据。
- 还有一点要明确的是,上面的数据可扩展范围只限于student字段,如果扩展为下面的json时本示例则不适用: {"class":"高三一班","student":{"name":"chen","sex":"男","age":18},"course":["英语","数学"]}
解决思路:
- json数据解释为golang里面可操作的数据只能使用map,所以可以确定的是使用标准库里的json包将json解释为map结构。
- 因为json里面的student字段的值是另一个json,所以需要把student字段的值提取出来,再解释为json。
- 最后则可以使用map的方法把student里的name值提取出来。
代码示例(仅供参考):
运行结果:
问题思考:
更好的方法:
github有一个第三方json处理库可以更方便的处理json.