golang的json操作[转]

package main

 

import (

    "encoding/json"

    "fmt"

    "os"

)

 

type ConfigStruct struct {

    Host              string   `json:"host"`

    Port              int      `json:"port"`

    AnalyticsFile     string   `json:"analytics_file"`

    StaticFileVersion int      `json:"static_file_version"`

    StaticDir         string   `json:"static_dir"`

    TemplatesDir      string   `json:"templates_dir"`

    SerTcpSocketHost  string   `json:"serTcpSocketHost"`

    SerTcpSocketPort  int      `json:"serTcpSocketPort"`

    Fruits            []string `json:"fruits"`

}

 

type Other struct {

    SerTcpSocketHost string   `json:"serTcpSocketHost"`

    SerTcpSocketPort int      `json:"serTcpSocketPort"`

    Fruits           []string `json:"fruits"`

}

 

func main() {

    jsonStr := `{"host""http://localhost:9090","port": 9090,"analytics_file""","static_file_version": 1,"static_dir""E:/Project/goTest/src/","templates_dir""E:/Project/goTest/src/templates/","serTcpSocketHost"":12340","serTcpSocketPort": 12340,"fruits": ["apple""peach"]}`

 

    //json str 转map

    var dat map[string]interface{}

    if err := json.Unmarshal([]byte(jsonStr), &dat); err == nil {

        fmt.Println("==============json str 转map=======================")

        fmt.Println(dat)

        fmt.Println(dat["host"])

    }

 

    //json str 转struct

    var config ConfigStruct

    if err := json.Unmarshal([]byte(jsonStr), &config); err == nil {

        fmt.Println("================json str 转struct==")

        fmt.Println(config)

        fmt.Println(config.Host)

    }

 

    //json str 转struct(部份字段)

    var part Other

    if err := json.Unmarshal([]byte(jsonStr), &part); err == nil {

        fmt.Println("================json str 转struct==")

        fmt.Println(part)

        fmt.Println(part.SerTcpSocketPort)

    }

 

    //struct 到json str

    if b, err := json.Marshal(config); err == nil {

        fmt.Println("================struct 到json str==")

        fmt.Println(string(b))

    }

 

    //map 到json str

    fmt.Println("================map 到json str=====================")

    enc := json.NewEncoder(os.Stdout)

    enc.Encode(dat)

 

    //array 到 json str

    arr := []string{"hello""apple""python""golang""base""peach""pear"}

    lang, err := json.Marshal(arr)

    if err == nil {

        fmt.Println("================array 到 json str==")

        fmt.Println(string(lang))

    }

 

    //json 到 []string

    var wo []string

    if err := json.Unmarshal(lang, &wo); err == nil {

        fmt.Println("================json 到 []string==")

        fmt.Println(wo)

    }

}

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

欢迎加群互相学习,共同进步。QQ群:iOS: 58099570 | Android: 330987132 | Go:217696290 | Python:336880185 | 做人要厚道,转载请注明出处!http://www.cnblogs.com/sunshine-anycall/p/4800244.html

时间: 2024-08-31 09:49:06

golang的json操作[转]的相关文章

PHP针对JSON操作实例分析

 这篇文章主要介绍了PHP针对JSON操作的常用方法,实例分析了json转数组.数组转json等技巧与相关注意事项,需要的朋友可以参考下     本文实例分析了PHP针对JSON操作.分享给大家供大家参考.具体分析如下: 由于JSON可以在很多种程序语言中使用,所以我们可以用来做小型数据中转,如:PHP输出JSON字符串供JavaScript使用等.在PHP中可以使用 json_decode() 由一串规范的字符串解析出 JSON对象,使用 json_encode() 由JSON 对象生成一串规

PHP针对JSON操作实例分析_php技巧

本文实例分析了PHP针对JSON操作.分享给大家供大家参考.具体分析如下: 由于JSON可以在很多种程序语言中使用,所以我们可以用来做小型数据中转,如:PHP输出JSON字符串供JavaScript使用等.在PHP中可以使用 json_decode() 由一串规范的字符串解析出 JSON对象,使用 json_encode() 由JSON 对象生成一串规范的字符串. 例: 复制代码 代码如下: <?php $json = '{"a":1, "b":2, &quo

Json操作库DynamicJson使用指南_C#教程

Json的简介 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.它基于ECMAScript的一个子集. JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C.C++.C#.Java.JavaScript.Perl.Python等).这些特性使JSON成为理想的数据交换语言. 易于人阅读和编写,同时也易于机器解析和生成(一般用于提升网络传输速率). Json的优点 数据格式比较简单,易于读写,格式都是压缩的,占用带宽小 易于

讲讲关于NET3.5的JSON操作

前几天把类库由Net2.0升级到3.5,过程还是比较顺利的,只是其中一个DLL出了点问题,就Newtonsoft.Json.DLL,原来,它有2个版本,一个是基于Net2.0类库的,另一个是基于Net3.5类库,目前有没有基于4.0的版本,不清楚.可能是由于代码不规范,导致这个DLL引用失败.       之后,找到对应的3.5版本的DLL覆盖以后,编译通过,似乎正常了.但在进行JSON格式转换的时候,提示转换失败,经过调用和跟踪,发现2.0和3.5在语法上还是有差别的,在博客园里搜索了一圈,发

json操作-怎么获取json数据及操作

问题描述 怎么获取json数据及操作 var PacsData = [ { "Path": ["F:1231debugData979372PACS100126725274152DX_e3b0eb90f7fdf110052b16bfb046a76363ee787eb18278c105de27bc786cbc9a5667f7507dde0a9b5ad0097523b20b48_007332_000001.dcm.icon.jpg", "F:1231debugD

kbmmw 中JSON 操作入门

现在各种系统中JSON 用的越来越多.delphi 也自身支持JSON 处理. 今天简要说一下kbmmw 内部如何使用和操作JSON. kbmmw 中json的操作是以TkbmMWJSONStreamer 为基础,要导入.导出JSON字符串, 首先要创建TkbmMWJSONStreamer.  然后是 TkbmMWJSONObject和 TkbmMWJSONArray. 先举一个最简单的例子. procedure TForm1.Button3Click(Sender: TObject); var

javascript JSON操作入门实例_json

JSON的规则很简单: 对象是一个无序的"'名称/值'对"集合.一个对象以"{"(左括号)开始,"}"(右括号)结束.每个"名称"后跟一个":"(冒号):"'名称/值' 对"之间使用","(逗号)分隔.具体细节参考http://www.json.org/json-zh.html 这篇有个入门的文章,也可以参考下 JSON 学习之完全手册图文举个简单的例子: js 代码

Python中字典和JSON互转操作实例_python

JSON是一种轻量级的数据交换格式,各种语言都有良好的支持.字典是Python的一种数据结构.可以看成关联数组. 有些时候我们需要设计到字典转换成JSON序列化到文件,或者从文件中读取JSON.简单备忘一下. Dict转JSON写入文件 复制代码 代码如下: #!/usr/bin/env python # coding=utf-8 import json d = {'first': 'One', 'second':2} json.dump(d, open('/tmp/result.txt', '

Json——js和C#对Json的操作

原文:Json--js和C#对Json的操作   JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,采用完全独立于语言的文本格式.博主记得几年前在华为外包项目中有一个和Android应用交互的需求,Android调用C#的Webservice的接口,就是通过Json这种格式来传递数据的.就是因为这种完全独立于语言的数据格式,所以在系统的前后台被广泛使用.本篇用来记录下前端JS以及后端C#里面JSON的一些常用的操作方法.笔记笔记,好记性不如多笔记~~