1. 程式人生 > >golang 中對json資料讀寫

golang 中對json資料讀寫

程式設計中,我們很常會把資料以json格式儲存在檔案中或者讀取json檔案,golang有內建對json資料的處理包 encoding/json

// file name: test.go

package main

import (
    "encoding/json"
    "fmt"
    "log"
    "os"
)

type User struct {
    Name string
    Age int8
}

func testMarshal() []byte {
    user := User{
        Name: "Tab",
        Age: 18
, } data, err := json.Marshal(user) if err != nil { log.Fatal(err) } return data } func testUnmarshal(data []byte) { var user User err := json.Unmarshal(data, &user) if err != nil { log.Fatal(err) } fmt.Println(user) } func testRead() []byte
{ fp, err := os.OpenFile("./data.json", os.O_RDONLY, 0755) defer fp.Close() if err != nil { log.Fatal(err) } data := make([]byte, 100) n, err := fp.Read(data) if err != nil { log.Fatal(err) } fmt.Println(string(data[:n])) return data[:n] } func testWrite(data []byte
) { fp, err := os.OpenFile("data.json", os.O_RDWR|os.O_CREATE, 0755) if err != nil { log.Fatal(err) } defer fp.Close() _, err = fp.Write(data) if err != nil { log.Fatal(err) } } func main() { var data []byte data = testMarshal() fmt.Println(string(data)) testWrite(data) data = testRead() testUnmarshal(data) }

這段程式碼主要是先對資料進行序列化然後儲存到檔案中,再從檔案中讀取json資料進行反序列化。

據說 json-iteator 是目前golang中對json格式資料處理最快的包(比官方json包快6倍),好像是滴滴團隊開源的,使用起來也非常方便,有興趣的可以學習學習,下面我們看看官方的示例程式碼,使用起來也是很方便

package main

import "github.com/json-iterator/go"

type User struct {
    Name string
    Age int8
}

func main() {
    user := User{
            Name: "tanggu",
            Age: 18,
        }
        var jsoniter = jsoniter.ConfigCompatibleWithStandardLibrary
        // 序列化
        data, err := jsoniter.Marshal(&user)
        if err != nil {
            log.Fatal(err)
        }
        fmt.Println(string(data))

        // 反序列化
        var people User
        err = jsoniter.Unmarshal(data, &people)
        if err != nil {
            log.Fatal(err)
        }
        fmt.Println(people)
}

相關推薦

golang json資料

程式設計中,我們很常會把資料以json格式儲存在檔案中或者讀取json檔案,golang有內建對json資料的處理包 encoding/json // file name: test.go pa

sql語句json資料的操作

sql語句中對json資料的操作          1.獲取指定json字串中指定的屬性值,以下三種寫法等價:     //attributes_json欄位的值為一個json字串,下面的

golangmap並發問題及解決方法

傳值調用 .data 協程 資源 線程 string 錯誤 int println 一、map並發讀寫問題 如果map由多協程同時讀和寫就會出現 fatal error:concurrent map read and map write的錯誤 如下代碼很容易就出現map並發

SpringMvcjson資料的處理

1、使用@ResponseBody實現資料輸出       @ResponseBody的作用:       將標註此註解的處理方法的返回值結果直接寫入HTTP  ResponseBody (Re

Linux 核心驅動檔案的

有時候需要在Linux kernel–大多是在需要除錯的驅動程式–中讀寫檔案資料。在kernel中操作檔案沒有標準庫可用,需要利用kernel的一些函式,這些函式主 要有: filp_open() filp_close(), vfs_read() vfs_write

python 檔案的操作 以及如何邊寫入 邊儲存flush()

首先 python中開啟檔案大致常用的幾類如下: 1.寫入檔案write #這種寫入方式會將原文字刪除,重新寫入 File = open("test.txt",'w') 2.讀取檔案read File = open("test.txt",'a+')

Java檔案的操作

像我們經常會遇到這樣的事情,例如一個txt檔案中有姓名和電話,這個時候很經常就需要將名字和電話號碼進行提取操作,這個時候就可以利用Java中io來實現了。 這裡我就不具體介紹io中的位元組流和字元流的異同點了,有興趣的同學可以自己百度百度。 今天主要是介紹一下如何實現對檔案

JAVA關於像的

導入 異常捕獲 ima alt cto exc dex 創建 wid 1 /** 2 * 針對對象的文件讀寫 3 */ 4 5 //導入包 6 import java.io.File; 7 import java.io.FileInputStream;

pythonjson檔案

下面介紹json檔案的相關操作 我瞭解到Json,全名 JavaScript Object Notation,是一種輕量級的資料交換格式。Json最廣泛的應用是作為AJAX中web伺服器和客戶端的通訊的資料格式。現在也常用於http請求中,所以對json的各種學習,是自然而然的事情。

ios使用 NSJSONSerialization json資料的解析

 Object Notation) 是一種輕量級的資料交換格式,它基於ECMAScript的一個子集。 JSON採用完全獨立於語言的文字格式,但是也使用了類似於C語言家族的習慣(包括C、C++、C#、Java、JavaScript、Perl、Python等)。這些特性使JSON成為理想的資料交換語言。

DelphiJson格式

unit Unit1; interface uses   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,   Dialogs, StdCtrls, Grids, DBGrids, DB, DBTables;

iOS開發JSON解析資料的處理

在網上看到一個例子,對JSON解析出來的資料處理的方法非常簡單,而且通用,把我對它理解的思路寫一下。 首先介紹下JSON解析,JSON解析出來的資料只有陣列和物件兩種結構。 objective - c中用字典來儲存物件資訊。key值對應物件名字,value值對應物件的值。在

C# EPPlusExcel的

1. EPPlus概述EPPlus 是使用Open Office XML格式(xlsx)讀寫Excel 2007 / 2010檔案的.net開發庫。EPPlus 支援:單元格範圍單元格樣式(邊框,顏色,填充,字型,數字,對齊)圖表圖片形狀批註表格保護加密資料透視表資料驗證條件

Python—Excel進行操作

href ace 需要 文件中 tle net 過程 ova 設置 學習Python的過程中,我們會遇到Excel的讀寫問題。通過搜索得知,我們可以使用xlwt module將數據寫入Excel表格,使用xlrd module從Excel讀取數據。下面介紹如何實現使用pyt

【python 3.6】xlwt和xlrdexcel的操作

times python _for 一行 xlsx datetime 列數 font utf-8 #python 3.6 #!/usr/bin/env python # -*- coding:utf-8 -*- __author__ = ‘BH8ANK‘ im

關於c++文件的封裝

hfile value val style urn 兩種 pat pos write 1 namespace 2 { 3 UINT_T GetWriteSizeForNoBuf(UINT_T fsize) 4 { 5

Office加載項Excel進行操作

ted 是否 nta 文字 個人 asc log account col 轉載自我的個人主頁 前言 在開發ExcelWeb插件的時候,一大亮點就是可以在web項目中操作Excel,讀取Excel的內容,也可以將服務端的數據寫入的 Excel中,大大方便的用戶使用Excel

MySQL的事務及鎖實現並發訪問控制

hang dea 執行c 定時 ack 幫助 持久 表操作 查看 一、並發控制中鎖的概念   鎖是並發控制中最核心的概念之一,在MySQL中的鎖分兩大類,一種是讀鎖,一種是寫鎖,讀鎖也可以稱為共享鎖(shared lock),寫鎖也通常稱為排它鎖(exclusive loc

SQL海量資料效能優化

轉載:http://www.kuqin.com/shuoit/20141127/343501.html   專案背景 這是給某資料中心做的一個專案,專案難度之大令人髮指,這個專案真正的讓我感覺到了,商場如戰場,而我只是其中的一個小兵,太多的戰術,太多的高層之間的較量,太多的內幕

js裡的sort()json資料(某一欄位)進行排序,超實用!!!

首先來看一下接口裡的資料,對哪一資料進行操作 { "hourList": [{ "DATA_DATE": "00", "USE_SUM": 9.58 }, { "DATA_DATE": "03", "USE_SUM": 23.18 }, { "DATA_DATE": "