package main

import (
"encoding/json"
"fmt"
) type IT1 struct {
Company string `json:"company"`
Subjects []string `json:"subjects"`
IsOk bool `json:"isok"`
Price float64 `json:"price"`
} type IT2 struct {
Company string `json:"company"` } func main(){
jsonbuff :=`{
"company": "zhczGO",
"isok": true,
"price": 99,
"subjects": [
"go",
"fabric",
"python",
"Test"
]
}` var temp IT1
err :=json.Unmarshal([]byte(jsonbuff),&temp)
if err != nil{
fmt.Println("err=",err)
return
}
//fmt.Println("temp=",temp)
fmt.Printf("tmp=%+v\n",temp) var temp2 IT2
err = json.Unmarshal([]byte(jsonbuff),&temp2)
if err != nil{
fmt.Println("err=",err)
return
}
fmt.Printf("tmp2=%+v\n",temp2) }

  

package main

import (
"encoding/json"
"fmt"
) func main() {
jsonbuff :=`{
"company": "zhczGO",
"isok": true,
"price": 99,
"subjects": [
"go",
"fabric",
"python",
"Test"
]
}` //创建一个map
m := make(map[string]interface{},4)
err := json.Unmarshal([]byte(jsonbuff),&m) //一定要是地址 if err != nil{
fmt.Println("err=",err)
return
}
fmt.Printf("m=%+v/n",m) //var str string
//str = m["company"]//err 无法转换 //类型断言
for key,value := range m {
switch data := value.(type) {
case string:
//str = data
fmt.Printf("map[%s]的值类型为string,value=%s\n",key,data)
case bool:
fmt.Printf("map[%s]的值类型为bool,value=%v\n",key,data)
case float64:
fmt.Printf("map[%s]的值类型为float64,value=%f\n",key,data)
case []string:
fmt.Printf("map[%s]的值类型为[]string,value=%v\n",key,data)
case []interface{}:
fmt.Printf("map[%s]的值类型为interface{},value=%v\n",key,data)
}
} }

  

json数据转换成结构体的更多相关文章

  1. golang中如何将json文件解析成结构体

    package tool import ( "bufio" "encoding/json" "fmt" "os" ) t ...

  2. 【转】C#中将JSon数据转换成实体类,将实体类转换成Json

    http://wo13145219.iteye.com/blog/2022667 http://json2csharp.chahuo.com/ using System; using System.C ...

  3. 利用JAVA反射机制将JSON数据转换成JAVA对象

    net.sf.json.JSONObject为我们提供了toBean方法用来转换为JAVA对象, 功能更为强大,  这里借鉴采用JDK的反射机制, 作为简单的辅助工具使用,   有些数据类型需要进行转 ...

  4. go语言之进阶篇json解析到结构体

    1.json解析到结构体 示例: package main import ( "encoding/json" "fmt" ) type IT struct { ...

  5. JSON还原为结构体

    JSON还原为结构体 1)JSON字符串还原为结构体: 2)访问结构体的字段值: 本例运行效果图: uses SynCommons; const // JSON字符串 JSON1 = '{' + #1 ...

  6. 将JSON数据转换成JAVA的实体类

    思路:首先将JSON格式的数据转换成JSONObject,然后将JSONObject转换成Java的实体类(其中类属性包括List等类型) Java实体类: SearchFilter 类 1 publ ...

  7. [GO]json解析到结构体

    package main import ( "encoding/json" "fmt" ) type IT struct { Company string `j ...

  8. Delphi 10.2 JSON与对象/结构体序列化性能提高100多倍

    今天在盒子闲逛,无意中看到有人说XE7自带的Json对象序列化很慢,帖子在这里:http://bbs.2ccc.com/topic.asp?topicid=464378;经过测试的确如此.     但 ...

  9. 把HDFS里的json数据转换成csv格式

      1. 全景图 2. 用ListHDFS获取所有文件名   如果想重新再取一次,右健view state:   点击 clear state, 再运行,即可再次采集数据了.   3. 用FetchH ...

随机推荐

  1. C语言解决汉诺塔问题!

    很难受,看了很多资料才明白..... 对这个问题分析,发现思路如下:有n个黄金盘,要先把n-1个弄到B柱上,再把第n个弄到C柱上,然后把n-1个借助A柱弄到C柱上. 实现的函数如下: void f(i ...

  2. css top,right,bottom,left设置为0有什么用?它和width:100%和height:100%有什么区别?

     壹 ❀ 引 当我们使用position属性时,总免不了与top,left,right,bottom四个属性打交道,那么这四个属性都设置为0时有什么用,与宽高设置100%又有什么区别?本文对此展开讨论 ...

  3. vue中template的作用及使用

     先来看一个需求:下图div用v-for做了列表循环,现在想要span也一起循环,应该怎么做? 有3种方法可以实现 ①:直接用v-for对span也循环一次(该方法虽然可以使用,但不要用这种方式,因为 ...

  4. 重磅来袭!Reactive 架构专场四城巡回演讲

    Reactive 究竟是什么?Reactive 对架构设计的影响和冲击,以及给开发方式带来的改变有哪些?为什么阿里巴巴.Pivotal.Facebook 纷纷在生产环境中实践 Reactive? 本次 ...

  5. MySQL for OPS 09:MHA + Atlas 实现读写分离高可用

    写在前面的话 前面做了 MHA 高可用,但是存在这样一个问题,我们花了 4 台机器,但是最终被利用起来的也就一台,主库.这样硬件利用率才 25%,这意味着除非发生故障,不然其他几台机器都是摆设.明显的 ...

  6. IDEA maven设置配置

    IDEA Maven配置 1. 下载maven 下载地址 从官网上,下载一个压缩包,然后解压到任意的文件夹 Maven的安装必须需要jdk1.7+ 2. 环境变量设置 M2_HOME改为具体的路径,其 ...

  7. JS中for,for...in,for...of以及foreach循环的用法

    1.for()循环 // for循环的表达式之间用的是;号分隔的,千万不要写成, for (初始化表达式1; 判断表达式2; 自增表达式3) { // 循环体4 } 2.for...in索引遍历 va ...

  8. /etc/profile和~/.bash_profile等文件的区别和联系

    对比说明:/etc/profile:为系统的每个用户设置环境信息和启动程序,当用户第一次登录时,该文件被执行,其配置对所有登录的用户都有效.当被修改时,必须重启才会生效.英文描述:”System wi ...

  9. HTML学习 day03

    表单 表单   表单:表单域:包含了处理表单数据所用的程序的URL以及数据提交到服务器的方法.     表单控件:(对象.元素):包含了文本框.密码框.隐藏.多行文本框(文本域).复选框.单选框.下拉 ...

  10. DDoS攻击工具

    DDoS攻击工具 综合性工具 综合性工具除了可以进行DDoS攻击外,还可用于其他的用途,例如:端口扫描.安全审计.防火墙等.实际上,大部分综合性工具开发的原始目的并不是用于DDoS,而是"网 ...