(五)json包的使用

encoding/json

package main

import (
    "encoding/json"
    "fmt"
)

type Movie struct {
    Title  string   "name"
    Year   int      "year"
    Blue   bool     ""
    Actors []string "actor array"
}

func JsonTest() {
    m := new(Movie)
    m.Title = "tom and jerry"
    m.Year = 1992
    m.Blue = false
    m.Actors = []string{"tom", "jerry"}
    fmt.Println(m)

    // json.Marshal
    data, err := json.Marshal(m)
    if err != nil {
        fmt.Println(err.Error())
    }
    fmt.Println(data)
    fmt.Printf("%s\n", data)

    // json.MarshalIndent
    data, err = json.MarshalIndent(m, "", "  ")
    if err != nil {
        fmt.Println(err.Error())
    }
    fmt.Println(data)
    fmt.Printf("%s\n", data)

    // json.Unmarshal
    um := new(Movie)
    if err := json.Unmarshal(data, um); err != nil {
        fmt.Println(err.Error())
    }
    fmt.Println(um)
}

func main() {
    JsonTest()
}

原文地址:https://www.cnblogs.com/walkinginthesun/p/10192768.html

时间: 2024-08-30 08:01:59

(五)json包的使用的相关文章

Golang高性能json包:easyjson

简介 easyjson是什么呢? 根据官网介绍,easyjson是提供高效快速且易用的结构体structs<-->json转换包.easyjson并没有使用反射方式实现,所以性能比其他的json包该4-5倍,比golang 自带的json包快2-3倍. easyjson目标是维持生成去代码简单,以致于它可以轻松地进行优化或固定. 安装 go get -u github.com/mailru/easyjson/go install  github.com/mailru/easyjson/easy

两层嵌套的JSON包的解法

由于后台的变态,有时候会出现两层甚至多层嵌套的JSON包. 一层的很好解,而且我看过一些比较大的网站新闻接口返回的JSON包也仅仅是一层的. 比如下图所示一层的包 代码也很简单直观 dict = [data objectFromJSONData]; // 这里可能会转换失败,还需要接着做判断 _dinnArray = [[NSMutableArray alloc] init]; _dataArray = [dict objectForKey:@"data"]; for (NSDicti

[.net 面向对象程序设计进阶] (13) 序列化(Serialization)(五) JSON序列化利器 Newtonsoft.Json 及 通用Json类

[.net 面向对象程序设计进阶] (13) 序列化(Serialization)(五) JSON序列化利器 Newtonsoft.Json 及 通用Json类 本节导读: 关于JSON序列化,不能不了解Json.net(Newtonsoft.Json)这款世界级的开源类库,除了拥有良好的性能之外,功能也是非常强大的. 本节会详细说明这个类库.此外,对于不喜欢使用第三方类库的同学,会整理一个基于微软类库的通用Json类. 读前必备: 本节主要介绍一款第三方类库和一个自己整理封装的类库,说起到封装

Spring mvc4使用JSON包变更

spring MVC4以上,使用的json包有变更. 使用之前的json包出包java.lang.NoClassDefFoundError: com/fasterxml/jackson/core/JsonProcessingException错误. 新用到包为jackson-annotations-2.5.0.jar,jackson-core-2.5.0.jar,jackson-databind-2.5.0.jar spring-servlet.xml里面也有变动 <!-- 用于将对象转换为 J

使用JSONArray.fromObject()方法和引入net.sf.json包所需要的jar包支持

关于使用JSONArray.fromObject()方法和引入net.sf.json包所需要的jar包支持. net.sf.json的下载地址 最新版本:http://sourceforge.net/projects/json-lib/files/json-lib/ 本次选择 json-lib-2.3-jdk15.jar 版本 最新的是2.4的版本,本次使用的是 json-lib-2.3-jdk15.jar: json-lib还需要以下依赖包: jakarta commons-lang 2.5 

echarts 地图 离线json包分享

最近,项目中需要用到地图,由于项目的特殊性,只能使用内网获取数据. 然而,echarts官网上的离线地图包(http://echarts.baidu.com/download-map.html)早在一年前就不支持下载了,推荐使用地图API. 经过一番努力之后(某站上全是收费的资源,心累). 终于找到了免费的资源 echarts github上的地图js及json包:https://github.com/apache/incubator-echarts/tree/master/map 上面链接没有

安卓里面JSON处理和JAVA SE里面的JSON包

今天编译安卓项目遇到这个问题 com.android.dex.DexException: Multiple dex files define的解决办法 大致意思就是引用了 相同的包 在JAVA SE里面我使用的是 import net.sf.json.JSONObject; 这个就不多说了,网上大家都可以下载到,但是当吧这个jar放到安卓里就出现引用相同的包的问题了 看了下android.jar 里面有个org.json 一样可以处理 问题解决

按条件生成j随机json包:randomjson

前端开发中,在做前后端分离的时候,经常需要手写json数据,有2个问题特别揪心: 1,数据是写死的,不能按一定的条件随机生成长度不一,内容不一的数据 2,写数组的时候,如果有很多条,需要一条一条地写,费时费力 randomjson用来根据模型随机生成json,mock json数据的时候特别有用 github地址: https://github.com/finance-sh/randomjson 如何使用 安装 npm install randomjson 用法    // 引用包    var

java中json包的使用以及字符串,map,list,自定义对象之间的相互转换

做一个map和字符串的转换,需要导入这些jar包,这是最基本的一些jar包. 经过多方尝试得出结论入下: 首先导入基本包:json-lib-2.2.3-jdk15.jar 如果没有这个jar包,程序是写不起来的. 现在保证了程序编译能够通过,跑一下 出现异常:org/apache/commons/lang/exception/NestableRuntimeException 导入commons-lang-2.3.jar,问题解决. 跑一下: 出现异常:java.lang.ClassNotFoun