JSON在主流编程语言中的实现与应用

JSON在主流编程语言中通过内置的工具或第三方库实现了灵活的解析和序列化,广泛应用于Web开发、移动应用、系统编程等领域,实现了跨语言、跨平台的数据交换。

WeJSON 2024-01-28 JSON教程

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,由于其简洁、易读的特性,成为现代软件开发中广泛应用的数据表示方式。

在不同的主流编程语言中,对JSON的解析和处理都有着相应的实现,以满足跨语言、跨平台的数据交换需求。

本文将介绍JSON在几种主流编程语言中的实现,包括JavaScript、Python、Java、C#、Go和Ruby。

1. JavaScript

JavaScript是一种高度灵活的脚本语言,常用于Web前端开发。JSON在JavaScript中有天然的支持,因为JSON的语法规则与JavaScript对象字面量的语法非常相似。在JavaScript中,可以使用内置的全局对象 JSON 提供的方法进行JSON的解析和序列化。

解析JSON数据:

// JSON字符串
const jsonString = '{"name": "John", "age": 30, "city": "New York"}';

// 解析JSON字符串为JavaScript对象
const jsonObject = JSON.parse(jsonString);

console.log(jsonObject.name); // 输出: John
console.log(jsonObject.age);  // 输出: 30
console.log(jsonObject.city); // 输出: New York

序列化为JSON数据:

// JavaScript对象
const person = { name: "Alice", age: 25, city: "London" };

// 将JavaScript对象序列化为JSON字符串
const jsonStringAgain = JSON.stringify(person);

console.log(jsonStringAgain); // 输出: {"name":"Alice","age":25,"city":"London"}

2. Python

Python是一种易学易用的高级编程语言,被广泛应用于Web开发、数据科学等领域。在Python中,可以使用内置的 json 模块来进行JSON的解析和序列化。

解析JSON数据:

import json

# JSON字符串
json_string = '{"name": "Alice", "age": 25, "city": "London"}'

# 解析JSON字符串为Python对象
python_object = json.loads(json_string)

print(python_object["name"]) # 输出: Alice
print(python_object["age"])  # 输出: 25
print(python_object["city"]) # 输出: London

序列化为JSON数据:

import json

# Python对象
person = {"name": "Bob", "age": 28, "city": "Paris"}

# 将Python对象序列化为JSON字符串
json_string_again = json.dumps(person)

print(json_string_again) # 输出: {"name": "Bob", "age": 28, "city": "Paris"}

3. Java

Java是一种强大而广泛使用的面向对象编程语言,适用于各种应用开发。在Java中,常用的JSON解析库包括 Jackson、Gson等。下面以Jackson为例演示JSON的解析和序列化。

解析JSON数据:

import com.fasterxml.jackson.databind.ObjectMapper;

// JSON字符串
String jsonString = "{\"name\": \"Charlie\", \"age\": 35, \"city\": \"Berlin\"}";

// 创建ObjectMapper对象
ObjectMapper objectMapper = new ObjectMapper();

// 解析JSON字符串为Java对象
Person person = objectMapper.readValue(jsonString, Person.class);

System.out.println(person.getName()); // 输出: Charlie
System.out.println(person.getAge());  // 输出: 35
System.out.println(person.getCity()); // 输出: Berlin

序列化为JSON数据:

import com.fasterxml.jackson.databind.ObjectMapper;

// 创建ObjectMapper对象
ObjectMapper objectMapper = new ObjectMapper();

// Java对象
Person person = new Person("David", 40, "Tokyo");

// 将Java对象序列化为JSON字符串
String jsonStringAgain = objectMapper.writeValueAsString(person);

System.out.println(jsonStringAgain);
// 输出: {"name":"David","age":40,"city":"Tokyo"}

4. C#

C#是一种现代的、多范式的编程语言,广泛应用于Windows平台的应用开发。在C#中,常用的JSON解析库包括 Newtonsoft.Json。下面以Newtonsoft.Json为例演示JSON的解析和序列化。

解析JSON数据:

using Newtonsoft.Json;

// JSON字符串
string jsonString = "{\"name\": \"David\", \"age\": 40, \"city\": \"Tokyo\"}";

// 解析JSON字符串为C#对象
Person person = JsonConvert.DeserializeObject<Person>(jsonString);

Console.WriteLine(person.Name); // 输出: David
Console.WriteLine(person.Age);  // 输出: 40
Console.WriteLine(person.City); // 输出: Tokyo

序列化为JSON数据:

using Newtonsoft.Json;

// C#对象
Person person = new Person("Eva", 28, "Seoul");

// 将C#对象序列化为JSON字符串
string jsonStringAgain = JsonConvert.SerializeObject(person);

Console.WriteLine(jsonStringAgain);
// 输出: {"Name":"Eva","Age":28,"City":"Seoul"}

5. Go

Go是一种具有高性能和简洁语法的编程语言,适用于系统编程和网络服务开发。在Go语言中,标准库中提供了 encoding/json 包,用于JSON的解析和序列化。

解析JSON数据:

package main

import (
	"encoding/json"
	"fmt"
)

// JSON字符串
var jsonString = `{"name": "Frank", "age": 33, "city": "Sydney"}`

// 创建结构体表示JSON数据的结构
type Person struct {
	Name string `json:"name"`
	Age  int    `json:"age"`
	City string `json:"city"`
}

func main() {
	// 创建Person对象
	var person Person

	// 解析JSON字符串为Go对象
	err := json.Unmarshal([]byte(jsonString), &person)
	if err != nil {
		fmt.Println("Error:", err)
		return
	}

	fmt.Println(person.Name) // 输出: Frank
	fmt.Println(person.Age)  // 输出: 33
	fmt.Println(person.City) // 输出: Sydney
}

序列化为JSON数据:

package main

import (
	"encoding/json"
	"fmt"
)

// 创建结构体表示JSON数据的结构
type Person struct {
	Name string `json:"name"`
	Age  int    `json:"age"`
	City string `json:"city"`
}

func main() {
	// 创建Person对象
	person := Person{"Grace", 25, "Shanghai"}

	// 将Go对象序列化为JSON字符串
	jsonStringAgain, err := json.Marshal(person)
	if err != nil {
		fmt.Println("Error:", err)
		return
	}

	fmt.Println(string(jsonStringAgain))
	// 输出: {"name":"Grace","age":25,"city":"Shanghai"}
}

6. Ruby

Ruby是一种动态、面向对象的脚本语言,被广泛应用于Web开发。在Ruby中,可以使用内置的 JSON 模块进行JSON的解析和序列化。

解析JSON数据:

require 'json'

# JSON字符串
json_string = '{"name": "Helen", "age": 27, "city": "Toronto"}'

# 解析JSON字符串为Ruby对象
ruby_object = JSON.parse(json_string)

puts ruby_object['name'] # 输出: Helen
puts ruby_object['age']  # 输出: 27
puts ruby_object['city'] # 输出: Toronto

序列化为JSON数据:

require 'json'

# Ruby对象
person = { 'name' => 'Jack', 'age' => 32, 'city' => 'Vancouver' }

# 将Ruby对象序列化为JSON字符串
json_string_again = person.to_json

puts json_string_again
# 输出: {"name":"Jack","age":32,"city":"Vancouver"}

JSON在不同编程语言中的实现和应用都表现出了极大的灵活性和通用性。无论是在Web前端的JavaScript,还是在后端的Python、Java、C#,以及系统编程领域的Go和动态语言Ruby,开发者都能够方便地使用各自语言提供的工具和库,轻松地进行JSON数据的解析和序列化。

这种统一的数据交换格式有助于实现不同语言和平台之间的无缝数据交流,为软件开发提供了便利。 JSON的广泛应用不仅体现了其设计的简单性和易用性,也反映了其在现代软件开发中的重要地位。

相关文章推荐

查看更多

JSONPath工具快速提取复杂JSON字段实战指南

这篇文章围绕JSONPath工具的实际使用流程,讲解如何从多层嵌套JSON中快速提取目标字段,并覆盖常见表达式、筛选条件、调试技巧与性能优化建议,适用于接口联调、日志分析和数据清洗场景。

工具实战 2026-04-28

JSON转Excel工具从接口数据到报表导出使用教程

详细介绍JSON转Excel工具的输入规范、字段映射、异常处理与导出技巧,帮助你将接口返回JSON快速整理为可交付的Excel报表,适用于运营分析、测试验收和数据归档。

工具实战 2026-04-27

Excel转JSON工具一键完成结构化转换使用教程

本文系统讲解Excel转JSON工具的使用方法,包括表头规范、空值处理、类型注意事项和结果校验步骤,帮助开发、测试和运营人员稳定完成表格到JSON的结构化转换。

工具实战 2026-04-26

JSON格式化与校验快速定位语法错误完全指南

围绕JSON格式化与校验工具,介绍从粘贴原始数据到定位错误字段的完整流程,并提供高频报错示例和修复策略,帮助你在前后端联调中更快排查JSON问题。

JSON教程 2026-04-25

防范JSON注入攻击

JSON注入攻击是一种恶意行为,攻击者试图通过在JSON数据中插入恶意代码或修改数据结构,来实现对系统的未经授权的访问或破坏。

JSON安全 2024-01-31

JSON Web Token(JWT)的应用与介绍

JSON Web Token(JWT)是一种基于JSON格式的轻量级、自包含的安全信息传递标准,广泛用于身份验证、单点登录和信息交换,在Web开发、移动应用和微服务架构中得到广泛应用。

JSON生态 2024-01-30