package main

import (
"encoding/json"
"fmt"
) var str string func main() {
m := make(map[string]interface{}, )
jsonbuf := `{"company":"zyg","isok":true,"price":5.55,"subjects":["go","python","java"]}`
err := json.Unmarshal([]byte(jsonbuf), &m)
if err != nil {
return
}
for key, value := range m{
switch data := value.(type) {
case string:
str = data
fmt.Printf("m[%s] value type is string, = %s\n", key, str)
case float64:
fmt.Printf("m[%s] value type is float64, = %f\n", key, data)
case bool:
fmt.Printf("m[%s] value type is bool, = %v\n", key, data)
case []interface{}:
fmt.Printf("m[%s] value type is []interface{}, = %v\n", key, data)
}
}
}

执行的结果为

m[isok] value type is bool, = true
m[price] value type is float64, = 5.550000
m[subjects] value type is []interface{}, = [go python java]
m[company] value type is string, = zyg

这里可以看到,将json解析到map与解析到结构各有各的好处,在声明上,结构体需要声明结构类型,而map只需要一个make函数,但是一旦得到了值以后,结构休的方式可以直接操作,map方式需要一个一个进行断言判断才行

[GO]json解析到map的更多相关文章

  1. go语言之进阶篇json解析到map

    1.json解析到map(通过类型断言,找到值和value类型) 示例: package main import ( "encoding/json" "fmt" ...

  2. json解析转map

    HashMap<String, Object> map = new HashMap<String, Object>();    JSONObject jsonObject = ...

  3. golang json解析到map中

    package main import ( "fmt" "encoding/json" ) type ItemMessage struct { ItemType ...

  4. 前台JSON对象传给springmvc,解析为map对象

    前台JSON对象传给springmvc,解析为map对象 javascript: $.ajax({ url : url, method : 'post', contentType : 'applica ...

  5. Android okHttp网络请求之Json解析

    前言: 前面两篇文章介绍了基于okHttp的post.get请求,以及文件的上传下载,今天主要介绍一下如何和Json解析一起使用?如何才能提高开发效率? okHttp相关文章地址: Android o ...

  6. Android总结之json解析(FastJson Gson 对比)

    前言: 最近为了统一项目中使用的框架,发现项目中用到了两种json解析框架,他们就是当今非常主流的json解析框架:google的Gson 和阿里巴巴的FastJson,为了废除其中一个所以来个性能和 ...

  7. Json解析工具Jackson(简单应用)

    原文http://blog.csdn.net/nomousewch/article/details/8955796 概述 Jackson库(http://jackson.codehaus.org),是 ...

  8. Tomjson - 一个"短小精悍"的 json 解析库

    Tomjson,一个"短小精悍"的 json 解析库,tomjson使用Java语言编写,主要作用是把Java对象(JavaBean)序列化为json格式字符串,将json格式字符 ...

  9. JSON解析实例——使用Json-lib

    JSON解析实例——使用Json-lib Json-lib下载及使用 本文介绍用一个类库进行JSON解析. 工具下载地址:http://sourceforge.net/projects/json-li ...

随机推荐

  1. scrapy_redis 实现多进程配置部分代码

    # 启用Redis调度存储请求队列SCHEDULER = "scrapy_redis.scheduler.Scheduler"# 确保所有的爬虫通过Redis去重DUPEFILTE ...

  2. 第一章 先把Kubernetes跑起来

    1.1 先跑起来 k8s官网已经为大家准备好了一个现成的最小可用系统.  https://kubernetes.io/docs/tutorials/kubernetes-basics/ 1.2 创建K ...

  3. 自己个儿写的循环分配txt中的内容

    <?php header("Content-type:text/html;charset=utf8"); //当前日期 $now = time(); //作为程序是否执行的依 ...

  4. Linux下sz下载文件超过4G办法

    当下载文件超过4G时,sz提示能下载. 解决办法有以下几种: 1.scp 2.ftp 3.nc 4.icmp 5.文件切割 ---------------------------------- 以上4 ...

  5. Promise题目

    setTimeout(function () { console.log(1); }, 0) new Promise(function executor(resolve) { console.log( ...

  6. mysql 理解索引,添加索引,使用索引(哪些情况会导致索引失效)

    索引用于快速找出在某个列中有一特定值的行.不使用索引,MySQL必须从第1条记录开始然后读完整个表直到找出相关的行,还需要考虑每次读入数据页的IO开销.而如果采取索引,则可以根据索引指向的页以及记录在 ...

  7. 爬虫验证码处理与IP处理

    引入 相关的门户网站在进行登录的时候,如果用户连续登录的次数超过3次或者5次的时候,就会在登录页中动态生成验证码.通过验证码达到分流和反爬的效果. - 1.对携带验证码的页面数据进行抓取 - 2.可以 ...

  8. DBCA Does Not Display ASM Disk Groups In 11.2

    DBCA Does Not Display ASM Disk Groups In 11.2 https://oraclehowto.wordpress.com/2011/08/15/dbca-does ...

  9. OpenLayers 3 之 地图控件(control)

    OpenLayers 3 之 地图控件(control) 地图控件(control)是指地图上比例尺,缩略图,拉近拉远的按钮,滚动控制条等控件,默认控件有三个,可以禁用. OpenLayers 3 之 ...

  10. C#中有关数组和string引用类型或值类型的判断

    直接来一段测试代码 class value_ref_type { public static void DEMO1() { ] { }; double[] location_new; string s ...