1. 程式人生 > >go 語言解析複雜json

go 語言解析複雜json

// Click here and start typing.
package main

import "fmt"
import "encoding/json"

type MxRecords struct {
	Value    string
	Ttl      int
	Priority int
	HostName string
}

type Data struct {
	MxRecords []MxRecords
}

type Response struct {
	Status string `json:"status"`
	Data   Data `json:"data"`
}
type apiR struct {
	Response Response `json:"response"`
}

func main() {

	body := `
  {"response": {
  "status": "SUCCESS",
  "data": {
    "mxRecords": [
      {
        "value": "us2.mx3.mailhostbox.com.",
        "ttl": 1,
        "priority": 100,
        "hostName": "
[email protected]
" }, { "value": "us2.mx1.mailhostbox.com.", "ttl": 1, "priority": 100, "hostName": "[email protected]" }, { "value": "us2.mx2.mailhostbox.com.", "ttl": 1, "priority": 100, "hostName": "@" } ], "cnameRecords": [ { "aliasHost": "pop.a.co.uk.", "canonicalHost": "us2.pop.mailhostbox.com." }, { "aliasHost": "webmail.a.co.uk.", "canonicalHost": "us2.webmail.mailhostbox.com." }, { "aliasHost": "smtp.a.co.uk.", "canonicalHost": "us2.smtp.mailhostbox.com." }, { "aliasHost": "imap.a.co.uk.", "canonicalHost": "us2.imap.mailhostbox.com." } ], "dkimTxtRecord": { "domainname": "20a19._domainkey.a.co.uk", "value": "\"v=DKIM1; g=*; k=rsa; p=DkfbhO8Oyy0E1WyUWwIDAQAB\"", "ttl": 1 }, "spfTxtRecord": { "domainname": "a.co.uk", "value": "\"v=spf1 redirect=_spf.mailhostbox.com\"", "ttl": 1 }, "loginUrl": "us2.cp.mailhostbox.com" } }}` var r apiR err := json.Unmarshal([]byte(body), &r) if err != nil { fmt.Printf("err was %v", err) } fmt.Println(r.Response.Data.MxRecords[1].HostName) }


參考:

http://segmentfault.com/q/1010000000583211     (原文問題,欄位轉大寫即可)

http://my.oschina.net/golang/blog/210012

相關推薦

go 語言解析複雜json

// Click here and start typing. package main import "fmt" import "encoding/json" type MxRecords struct { Value string Ttl int

Go -- 在Go語言中使用JSON struct

字母 ims bgcolor board channel rgs pick marshal player Encode 將一個對象編碼成JSON數據,接受一個interface{}對象,返回[]byte和error: func Marshal(v interface{}

go語言之玩味json

自己的 alt type iter src pla 映射 轉為json 接口轉發 這裏,我不會講官網的什麽映射到結構什麽什麽的,只是記錄一下我自己的小探索 html頁面代碼如下,以下示例html通用 把字符串轉為json //目標字符串 "{‘eooall‘,‘eo

Android Retrofit2框架的使用,以及解析複雜Json(其實也不算太複雜

  Retrofit是Square公司的開源專案,是基於OKHttp進行的應用層封裝 Retrofit官方文件:http://square.github.io/retrofit/ Retrofit GitHub地址:https://github.com/square/retro

python解析複雜json字串

  因為專案需要,公司領導對提出了介面測試的要求,因此作為一個測試人員,我第一時間就想到了jmeter這個利器,前面文章也有說明過怎麼用jmeter做http協議的介面測試,這裡我不再做講解,此篇主要講解如何用python做介面測試,並解析返回結果。 (注意:介面的返回格式是json格式) 一、pytho

Gson解析複雜Json資料

implementation'com.google.code.gson:gson:2.8.0' 然後根據api獲取到的json資料 { "status": "1", "info": "OK", "infocode": "10000",

go語言解析命令列引數的實現

一、實現程式碼如下 // fffggg project main.go package main import (     "flag"     "fmt" ) func main() {     var num int     var mode string   

java解析複雜json資料

java如何解析複雜的json資料 關於json處理的包有好幾個,比如jackson、Gson、Fastjson。Gson是谷歌做的,功能強大;Fastjson是阿里巴巴做的,效能更快。具體用哪個,開心就好。我這裡兩個都沒用,用的是java的一個類庫—json-

go語言解析網頁利器goquery使用教程(爬蟲必備)

爬蟲 導入 log 說明 常見 png eba 選擇器 我們 某些時候需要爬取網頁中指定信息時,通常需要一些框架解析網頁行成dom模型,然後來操作節點來獲取相應的信息。在java中很顯然就是Jsoup,而在Golang裏,應該就是這個goquery了吧。 goquery

Go語言解析xml格式資料

開發工具:Goland。 xml檔案,解析與json檔案解析非常相似。只是用了不同的包。 比如一個xml檔案,內容如下 <?xml version="1.0" encoding="utf-8"?> <servers version="1"> <

通過GSON解析複雜json資料(二)

這裡我們依舊用上文中的 json 字串 , 由於轉換為 map 依舊需要 javaBean , 所有我們的實體物件也不發生改變 這裡我們需要活用 java 反射和型別對比實現需求 先看程式碼 package com.jacx.test.test01.

Go語言解析YAML

gopath從零學 要用go,用官方的安裝包安裝在Home目錄下還需要額外的配置 首先安裝完go,在資料夾的bin目錄下執行go的命令報錯: go: cannot find GOROOT directory: /usr/local/go 需要在~/.ba

java解析複雜json:JSONObject 和 JSONArray的使用

在正式解析之前,我們需要下載解析Json所需要的jar包,一共有7個。下載地址如下:https://download.csdn.net/download/zai_xia/10374080大家也可以自行找資源下載。然後將這些Jar包 Build Path 進專案就好了。特別注意

Gson 解析複雜json字串

    對Gson不瞭解的同學可以先去了解下Gson的基本用法 需要解析的Json字串如下: {"data":{"data":[{"id":"310000","indexId":"01","provinceName":"上海"},{"id":"320000","index

3、解析複雜Json進階

場景一 沒有頭的Json陣列 “e:/person”檔案內容如下,檔案中是沒有頭的json陣列 [ { "id" : 1, "name" : "lzj", "age" : 27 },

JAVA-使用FastJson解析複雜JSON資料

FastJson解析JSON的核心就是把json資料直接轉換成物件,讓解析複雜的json資料變得非常簡單,較大的降低了出錯的可能性。 使用方法: 1.建立JSON資料物件,所有的json鍵值都使用key作為變數名,並且實現set,get函式。 下面試簡單的demo測試複雜的

go語言快速入門 JSON處理 24

同時 perl iot basic style 引號 零基礎 字典 run JSON作為一種易讀的輕量級的數據交換格式,被廣泛地使用著。在這篇文章中我們將會介紹一下JSON的基礎知識和go語言中JSON的處理方式。 JSON JSON(JavaScript Object

java使用jackson解析複雜json字串

為什麼要用 jackson jackson 憑藉其簡潔的語法、高效的處理速度、豐富的功能、清晰的文件等眾多優勢,受到廣大開發者的熱愛,成為了java程式設計師處理json資料的不二選擇。 1 實戰需求 在電商專案中,訂單物流查詢模組,需要接入多方快遞 API

GO語言開發之JSON處理 編碼JSON 與 解碼JSON

1. json簡介 JSON (JavaScript Object Notation)是一種比XML更輕量級的資料交換格式,在易於人們閱讀和編寫的同時,也易於程式解析和生成。儘管JSON是JavaScript的一個子集,但JSON採用完全獨立於程式語言的文字格式,且表現為鍵

Go語言實現複雜Restful Api

章節 程式執行結果 什麼是Restful Api? go 實現複雜 Restful Api 感想 0.程式執行結果 程式執行結果 1.什麼是Restful Api 2. go 實現複雜 Restful Api 2.1 go http server 端程