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)
}

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。如有错误或未考虑完全的地方,望不吝赐教。

(0)

相关推荐

  • 在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转为结构体时,经常会遇到无法确定某个字段类型的情况.在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的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序列化字符串时多了\的情况

    我们在对外提供API接口,返回响应的时候,很多时候需要使用如下的数据结构 type Response struct { Code int `json:"code"` Msg string `json:"msg"` Data interface{} `json:"data"` } 该API接口返回一个状体码,状态信息,以及具体的值.但是具体的值可能根据各个接口的不同而不同. 在实际的开发过程中我们可能会得到一个实际的数据值,并将这个值赋值给data

  • 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 反序列化的[]和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

随机推荐