天天看點

htmlunit 接收json資料_Go語言複雜json資料處理(基于标準庫)

業務場景:

有如下一個json資料:

{"class":"高三1班","student":{"name":"chen","sex":"男","age":18}}

需要提取student下的name值應該如何操作?假如後面需要在student裡增加performance 字段,又如何操作?

問題分析:

  1. 首先确定的是這是一個可擴充的json資料,換句話說,json時裡面的字段是會随着後面的需求變化而變化的。
  2. 在實際應用中,像這類json資料通常用于前後端互動時能實作一個動态擴充,服務端在不改變入參時動态擷取接口接收的資料。
  3. 還有一點要明确的是,上面的資料可擴充範圍隻限于student字段,如果擴充為下面的json時本示例則不适用: {"class":"高三一班","student":{"name":"chen","sex":"男","age":18},"course":["英語","數學"]}

解決思路:

  1. json資料解釋為golang裡面可操作的資料隻能使用map,是以可以确定的是使用标準庫裡的json包将json解釋為map結構。
  2. 因為json裡面的student字段的值是另一個json,是以需要把student字段的值提取出來,再解釋為json。
  3. 最後則可以使用map的方法把student裡的name值提取出來。

代碼示例(僅供參考):

package 
           

運作結果:

htmlunit 接收json資料_Go語言複雜json資料處理(基于标準庫)

問題思考:

htmlunit 接收json資料_Go語言複雜json資料處理(基于标準庫)

更好的方法:

github有一個第三方json處理庫可以更友善的處理json.

https://github.com/tidwall/gjson​github.com