業務場景:
有如下一個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值提取出來。
代碼示例(僅供參考):
package
運作結果:
問題思考:
更好的方法:
github有一個第三方json處理庫可以更友善的處理json.
https://github.com/tidwall/gjsongithub.com