go的json输出

// code_030_JSON_key_value project main.go
package main

import (
"encoding/json"
"fmt"
)

//Go语言内建对JSON的支持。
//使用Go语言内置的encoding/json 标准库,开发者可以轻松使用Go程序生成和解析JSON格式的数据

type IT struct {
Company string
Subjects []string
IsOk bool
Price float64
}

type University struct {
//ID int //所学专业的ID
Name string `json:"-"` //大学名称
//Department string //系
//Major string //专业
//SchoolYear int //学年
IsFullTime bool `json:"isFullTime,string"` //是否全日制
Subjects []string `json:"subjects"` //主要学科
Tuition float64 `json:"price, omitempty"` //学费
}

func main() {

//JSON的输出(编码)
//案例1:json.Marshal的使用
t1 := IT{"tencent", []string{"develop", "unittest", "production", "operative"}, false, 12000.0}
b, err := json.Marshal(t1)
if err != nil {
fmt.Println("json err:", err)
}
fmt.Println(string(b))
//案例2: json.MarshalIndent的使用,用缩进对输出进行格式化,效果更加json化
t2 := IT{"HuaWei", []string{"develop", "unittest", "production", "operative"}, false, 13000.0}
b2, err := json.MarshalIndent(t2, "", " ")
if err != nil {
fmt.Println("json err:", err)
}
fmt.Println(string(b2))
//案例3:struct tag的使用。--->>> 输出的时候,显示为首字母小写
//JSON输出的时候必须注意,只有导出的字段(首字母是大写)才会被输出,如果修改字段名,那么就会发现什么都不会输出,所以必须通过struct tag定义来实现。
/* 1)字段的tag是"-",那么这个字段不会输出到JSON
? 2)tag中带有自定义名称,那么这个自定义名称会出现在JSON的字段名中
? 3)tag中如果带有"omitempty"选项,那么如果该字段值为空,就不会输出到JSON串中
? 4)如果字段类型是bool, string, int, int64等,而tag中带有",string"选项,那么这个字段在输出到JSON的时候会把该字段对应的值转换成JSON字符串

*/
t3 := University{"清华大学", true, []string{"经济", "法律", "音乐", "美术", "计算机"}, 3000.00}
b3, err := json.MarshalIndent(t3, "", " ")
if err != nil {
fmt.Println("%v\n", err)
}
fmt.Println(string(b3))

//案例4:通过map生成JSON
m1 := make(map[string]interface{})
m1["company"] = "lenovo"
m1["subjects"] = []string{"dev", "test", "pro"}
m1["isok"] = true
m1["salary"] = 15000.00

b4, err := json.Marshal(m1)
if err != nil {
fmt.Println("%v\n", err)
}
fmt.Println(string(b4))
}

原文地址:http://blog.51cto.com/13914991/2294176

时间: 2024-10-10 07:01:24

go的json输出的相关文章

Springmvc 配置json输出的几种方式

Spring MVC 3.0 返回JSON数据的几种方法: 1. 直接 PrintWriter 输出 2. 使用 JSP 视图 3. 使用Spring内置的支持 // Spring MVC 配置 <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"> <property name="messageConverters"&

无废话Jersey构建RESTful服务之WebService系统教程 --3 [JAVA对象转成JSON输出]

一. 总体说明 XML和JSON 是最为常用的数据交换格式.本例子演示如何将JAVA对象,转换成JSON输出. 二.流程 1.在上文项目中, 在“cn.itrush.rest.resources.UserResource“中增加代码,代码如下: 1 package cn.itrush.rest.resources; 2 3 import java.util.ArrayList; 4 import java.util.HashMap; 5 import java.util.List; 6 impo

如何定制对象中特定字段的JSON输出内容

引言: 在Web应用开发中,经常需要将对象转化为JSON字符串的过程中,会有默认的输出内容不符合要求的情况,比如DateTime.一般可以通过定制Serializer来实现定制化的JSON字符输出. 1.  在对象中的getXXX方法中设置自定义的Serializer public class MyObject { private DateTime startDate; @JsonSerialize(using = DateTimeJsonSerializer.class) public Dat

FastJson/spring boot: json输出方法二

1.引入FastJson依赖包 <!-- FastJson --> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.15</version> </dependency> pom.xml参考 <project xmlns="http://maven.ap

Newtonsoft.Json输出Json时动态忽略属性

一,前言 最近做项目采用Json形式和其他客户端交互,借助于Newtonsoft.Json . 由于业务场景不同,输出的Json内容也不同.要想忽略的属性,可以借助Newtonsoft.Json的特性,在实体前面添加特性[JsonIgnore]即可,但有时候会根据业务需求,在不同的地方输出同一个实体中不同的属性,所以添加特性的方式显然不能满足要求.例如user表,在A场景下需要password:B场景下不需要. 二,解决办法 可以重写Newtonsoft.Json的DefaultContract

SpringMVC中使用@ResponseBody注解标注业务方法,将业务方法的返回值做成json输出给页面

导包: 除了一些spring的包之外,还需要jackson-annotations.jar , jackson-core.jar , jackson-databind.jar 这三个包 开启@ResponseBody注解: 在 spring-mvc.xml 中通过<mvc:annotation-driven />开启@ResponseBody注解 使用@ResponseBody标注业务方法 package com.loger.controller; import java.util.Array

struts2 json 输出日期格式不正确

struts2 输出json中 日期出现:2013-12-17T15:57:47 错误格式的数据 原因:struts2 json插件对日期的格式化有问题 解决方法:在实体类的日期的get方法上加注解:@JSON(format="yy-MM-dd HH:mm:ss") 例如: @JSON(format = "yy-MM-dd HH:mm:ss") public Date getFindtime() { return findtime; }

django rest_framework中将json输出字符强制为utf-8编码

最近在和日本外包合作开发JIRA对接发布系统的版本单时, 遇到这个问题. 就是我们这边的输出浏览器显示为中文,而到了JIRA端就出现乱码. 查了文档,原来django rest_framework的默认json是没指定编码的, 需要随接收方的环境编码来显示. 于是,因为项目进度,我们对了强制编码操作. 查看rest framework的源代码: class JSONRenderer(BaseRenderer): """ Renderer which serializes to

json输出用法+jquery validate

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="Test.WebForm1" %> <!DOCTYPE html><html> <head> <script type="text/javascript" src="jque