golang json数组拼接的实例
看代码吧~
func main() {
a := []byte(`{"Parents": [ "aaaaa", "bbbbbbb" ]}`)
b := []byte(`{"Parents": [ "Gomez", "Moticia" ]}`)
var arr []interface{}
js, _ := simplejson.NewJson(a)
nodes, _ := js.Map()
p := nodes["Parents"]
d := p.([]interface{})
for _, v := range d {
arr = append(arr, v)
}
js, _ = simplejson.NewJson(b)
nodes, _ = js.Map()
p = nodes["Parents"]
d = p.([]interface{})
for _, v := range d {
arr = append(arr, v)
}
res := make(map[string]interface{})
res["Parents"] = arr
c, _ := json.Marshal(res)
fmt.Println(string(c))
}
结果:
{“Parents”:[“aaaaa”,”bbbbbbb”,”Gomez”,”Moticia”]}
相应的,如果数组里面是interface类型同样适用。
补充:go实现json数组嵌套
引用包 “encoding/json"
定义以下结构体
type person struct {
Name string `json:"name"`
Sex string `json:"sex"`
Age string `json:"age"`
}
type test struct {
Class int `json:"class"`
Person []person `json:"person"`
}
创建实例如下
class6 :=
`{ "class":6,
"person":[{
"name":"wangha",
"sex":"male",
"age":"18"
},
{
"name":"zhang",
"sex":"female",
"age":"16"
}]
}`
对class6进行解析
var keys test
if err := json.Unmarshal([]byte(class6), &keys);err != nil{
fmt.Println(err)
}else {
fmt.Printf("%+v\n", keys)
fmt.Printf("%+v\n", keys.Person[1])
fmt.Printf("%s\n", keys.Person[0].Sex)
}
以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。如有错误或未考虑完全的地方,望不吝赐教。
相关推荐
-
golang 实现json类型不确定时的转换
将json转为结构体时,经常会遇到无法确定某个字段类型的情况.在Go中可以使用interface 任意类型来解决. // convert json to struct // type uncertain package main import ( "fmt" "encoding/json" ) type Host struct { Id interface{} IdcId interface{} } func main() { b := []byte(`{"
-
解决Golang json序列化字符串时多了\的情况
我们在对外提供API接口,返回响应的时候,很多时候需要使用如下的数据结构 type Response struct { Code int `json:"code"` Msg string `json:"msg"` Data interface{} `json:"data"` } 该API接口返回一个状体码,状态信息,以及具体的值.但是具体的值可能根据各个接口的不同而不同. 在实际的开发过程中我们可能会得到一个实际的数据值,并将这个值赋值给data
-
在golang xorm中使用postgresql的json,array类型的操作
xorm支持各种关系数据库,最近使用postgresql时,总是踩到一些坑,在此记录下解决方式. 在使用postgresql的array类型时,查询有点问题,xorm的官方文档给出重写的方式,但是不是很清晰: 官方文档链接:http://xorm.io/docs 也就是说碰到基础库不支持的类型,需要我们去重写ToDB.FromDB方法,废话不多说直接上代码: 比如int8[]类型,自定一个Int64Array type Int64Array []int64 func (s *Int64Array
-
golang中json小谈之字符串转浮点数的操作
有时会有这种需求,将一个json数据形如: {"x":"golang", "y":"520.1314"} 中的y反序列化为浮点类型,如果这样写: package main import ( "encoding/json" "fmt" ) type JsonTest struct { X string `json:"x"` Y float64 `json:"y
-
golang中json的omitempty使用操作
我就废话不多说了,大家还是直接看代码吧~ package main import ( "encoding/json" "fmt" ) type Project struct { Name string `json:"name"` Url string `json:"url"` Docs string `json:"docs,omitempty"` } func main() { p1 := Project{
-
golang:json 反序列化的[]和nil操作
我就废话不多说了,大家还是直接看代码吧~ package main import ( "encoding/json" "log" ) type JS struct { A []string } func main() { v1 := &JS{} v2 := &JS{A: []string{}} o1, err := json.Marshal(&v1) log.Println(string(o1), err) o2, err2 := json.
-
golang json数组拼接的实例
看代码吧~ func main() { a := []byte(`{"Parents": [ "aaaaa", "bbbbbbb" ]}`) b := []byte(`{"Parents": [ "Gomez", "Moticia" ]}`) var arr []interface{} js, _ := simplejson.NewJson(a) nodes, _ := js.Map()
-
Java获取json数组对象的实例讲解
如下所示: JSONArray jsonArray1 = jsonObject.getJSONArray("result"); for (int i = 0; i < jsonArray1.length(); i++) { JSONObject temp = (JSONObject) jsonArray1.get(i); String x = temp.getString("x"); String y = temp.getString("y"
-
Golang JSON的进阶用法实例讲解
痛点 json 是当前最常用的数据传输格式之一,纯文本,容易使用,方便阅读,在通信过程中大量被使用. 你是否遇到过json中某个字段填入某种类型都适合而陷入两难境地? (例如:定义了一个port字段,你却不知道是填入 8080 ,还是 "8080" 的尴尬局面) 你是否遇到过json反解析报错是因为填入字段的类型不匹配导致的?例如: json: cannot unmarshal number into Go struct field Host.port of type string 你
-
php利用嵌套数组拼接与解析json的方法
利用嵌套数组 拼接混合json -包含对象数组 <?php // 自 PHP 5.4 起 $array = [ "status" => "0", "message" => "ok", "arr"=> [] ]; class Person { public $name; public $age; //定义一个构造方法初始化赋值 public function __construct
-
ajax响应json字符串和json数组的实例(详解)
最近上班太忙,晚上抽空整理一下ajax请求中,后台返回json字符串和json数组的场景,以及前台的处理示例. 直接看代码. json字符串的后台响应 package com.ajax; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.serv
-
numpy 进行数组拼接,分别在行和列上合并的实例
在进行数据分析的时候,会把把一些具有多个特征的样本数据进行拼接合并吗,放在一起分析,预测.... 下面是用numpy中的函数进行数组的拼接. (1)方法一.np.vstack() v 表示vertical 垂直,也就是竖着拼接 和np.hstack() h表示Horizontal 横向 (2)方法二,np.c_[array1,array2] c_表示colum列 np.r_[array1,array2] r_表示row行 以上这篇numpy 进行数组拼接,分别在行和列上合并的实例就是小编分享给大
-
js 获取json数组里面数组的长度实例
作为一个前端页面开发者第一次处理json数据,遇到了'js 获取json数组里面数组的长度'?竟然不知道 json没有.length属性(真是要嘲讽下自己),少壮不努力老大徒伤悲啊!以前都是去寻求男朋友帮助,但是最近尝试自己去解决遇到的问题. 我遇到的问题是这样的:***.jsp结尾的页面里面,后端传给我的json数据是一个数组,然后要获取第二个数组contacts里面的数组长度,然后百度发现 json没有.length属性.怎么办呢? 既然json对象没有length属性,如果要知道他的长度怎
-
Jackson将json string转为Object,org.json读取json数组的实例
从json文件读取json string或者自定义json string,将其转为object.下面采用的object为map,根据map读取json的某个数据,可以读取第一级的数据name,后来发现想转成JsonArray读取"red"时没撤了,只好用了其他方法. 最后用org.json包解决了(readJsonArray函数),有空再看看有没有更好的办法. JSON文件如下: { "name":"name", "id":&
-
Golang单元测试与覆盖率的实例讲解
1 概述 C/C++和Java(以及大多数的主流编程语言)都有自己成熟的单元测试框架,前者如Check,后者如JUnit,但这些编程框架本质上仍是第三方产品,为了执行单元测试,我们不得不从头开始搭建测试工程,并且需要依赖于第三方工具才能生成单元测试的覆盖率. 相比之下,Go语言官方则提供了语言级的单元测试支持,即testing包,而且仅通过go工具本身就可以方便地生成覆盖率数据,也就是说,单元测试是Go语言的自带属性,除了好好设计自己的单元测试用例外,开发者不需要操心工程搭建的任何细节.没错,G
-
PHP封装返回Ajax字符串和JSON数组的方法
实例如下: <?php class DBDA { public $host="localhost"; public $uid = "root"; public $pwd = "123"; public $dbname = "mydb"; //成员方法 public function Query($sql,$type=1) { $db = new MySQLi($this->host,$this->uid,$t
随机推荐
- css pointer控制在firefox下显示手型的代码
- BootStrap select2 动态改变值的方法
- apache在win2003下的安全设置方法
- 浅析iOS应用开发中线程间的通信与线程安全问题
- Js,alert出现乱码问题的解决方法
- ASP.NET MVC5网站开发管理列表、回复及删除(十三)
- PHP中去掉字符串首尾空格的方法
- Android ViewPager源码详细分析
- 利用js的Node遍历找到repeater的一个字段实例介绍
- 使用Python来开发Markdown脚本扩展的实例分享
- 浅析Java Mail无法解析带分号的收件人列表的问题
- C#控制台输出进度和百分比的实例代码
- 微信小程序 网络请求(GET请求)详解
- Android 实现全屏和无标题栏的显示
- android 版本检测 Android程序的版本检测与更新实现介绍
- ASP.NET服务器控件开发(1)封装html
- 怎样在Linux上录制你的终端操作及回放
- Gerrit设置开机启动方法
- python requests爬取高德地图数据的实例
- 为什么Go语言把类型声明放在后面?
