JSON串转List:多种编程语言的实现方法详解
在开发过程中,JSON(JavaScript Object Notation)作为一种轻量级的数据交换格式,被广泛应用于前后端数据交互、配置文件存储等场景,将JSON字符串转换为List(列表)是常见的操作,本文将以主流编程语言为例,详细介绍如何实现JSON串到List的转换。
Java中的JSON转List
Java中处理JSON转List通常需要借助第三方库,如Gson、Jackson或Fastjson。
使用Gson
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import java.lang.reflect.Type;
import java.util.List;
public class JsonToListExample {
public static void main(String[] args) {
String jsonStr = "[{\"name\":\"张三\",\"age\":25},{\"name\":\"李四\",\"age\":30}]";
Gson gson = new Gson();
Type type = new TypeToken<List<Person>>(){}.getType();
List<Person> personList = gson.fromJson(jsonStr, type);
System.out.println(personList);
}
}
class Person {
private String name;
private int age;
// getters and setters
}
使用Jackson
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
import java.util.List;
public class JsonToListExample {
public static void main(String[] args) throws Exception {
String jsonStr = "[{\"name\":\"张三\",\"age\":25},{\"name\":\"李四\",\"age\":30}]";
ObjectMapper objectMapper = new ObjectMapper();
List<Person> personList = objectMapper.readValue(jsonStr, new TypeReference<List<Person>>(){});
System.out.println(personList);
}
}
Python中的JSON转List
Python内置了json模块,可以直接使用json.loads()方法将JSON字符串转换为List。
import json
json_str = '[{"name":"张三","age":25},{"name":"李四","age":30}]'
person_list = json.loads(json_str)
print(person_list)
# 输出: [{'name': '张三', 'age': 25}, {'name': '李四', 'age': 30}]
如果JSON字符串本身就是简单的数组(不是对象数组),转换会更直接:
json_str = '[1, 2, 3, "a", "b"]' simple_list = json.loads(json_str) print(simple_list) # 输出: [1, 2, 3, 'a', 'b']
JavaScript中的JSON转List
JavaScript中可以直接使用JSON.parse()方法将JSON字符串转换为数组(List)。
let jsonStr = '[{"name":"张三","age":25},{"name":"李四","age":30}]';
let personList = JSON.parse(jsonStr);
console.log(personList);
// 输出: [{name: "张三", age: 25}, {name: "李四", age: 30}]
对于简单的数组JSON字符串:
let jsonStr = '[1, 2, 3, "a", "b"]'; let simpleList = JSON.parse(jsonStr); console.log(simpleList); // 输出: [1, 2, 3, "a", "b"]
C#中的JSON转List
C#中可以使用System.Text.Json(. Core 3.0+)或Newtonsoft.Json库。
使用System.Text.Json
using System;
using System.Collections.Generic;
using System.Text.Json;
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
}
class Program
{
static void Main()
{
string jsonStr = "[{\"name\":\"张三\",\"age\":25},{\"name\":\"李四\",\"age\":30}]";
List<Person> personList = JsonSerializer.Deserialize<List<Person>>(jsonStr);
foreach (var person in personList)
{
Console.WriteLine($"{person.Name}, {person.Age}");
}
}
}
使用Newtonsoft.Json
using System;
using System.Collections.Generic;
using Newtonsoft.Json;
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
}
class Program
{
static void Main()
{
string jsonStr = "[{\"name\":\"张三\",\"age\":25},{\"name\":\"李四\",\"age\":30}]";
List<Person> personList = JsonConvert.DeserializeObject<List<Person>>(jsonStr);
foreach (var person in personList)
{
Console.WriteLine($"{person.Name}, {person.Age}");
}
}
}
注意事项
- 数据类型匹配:确保JSON中的数据类型与目标List中对象的属性类型匹配,否则可能会抛出异常。
- 异常处理:在实际开发中,应对JSON字符串可能为空或格式不正确的情况进行异常处理。
- 性能考虑:对于大量数据的JSON转换,选择性能较好的库(如Java中Jackson通常比Gson更快)。
- 安全性:避免直接解析不可信的JSON字符串,以防注入攻击。
将JSON字符串转换为List是各编程语言中的常见操作,虽然具体实现方式因语言而异,但核心思想都是利用语言提供的JSON解析库,这些转换方法,能够更高效地处理前后端数据交互和配置文件读取等场景,根据项目需求和团队熟悉度,选择合适的JSON库和实现方式,是提高开发效率的关键。



还没有评论,来说两句吧...