如何将下方的JSON数据解析为字符串?
如何将给定的JSON数据转换为字符串
嘿,我来帮你搞定这个问题!你给出的是一个包含两个商品条目的JSON数组,要把它转换成字符串(也就是JSON序列化)的话,不同编程语言有不同的简单实现方式,我给你列几个常用的:
Python
Python自带的json模块就能轻松搞定,用json.dumps()方法就行,还能通过参数生成带缩进的美化版字符串,可读性更强:
import json # 对应你提供的JSON数据的Python列表 data = [ { "id": 1, "name": "Instant Coffee", "price": 28.53, "on_hand_quantity": 27 }, { "id": 2, "name": "Cranberries - Dry", "price": 30.02, "on_hand_quantity": 29 } ] # 生成紧凑的JSON字符串 json_str = json.dumps(data) print(json_str) # 生成带缩进的美化版JSON字符串 pretty_json_str = json.dumps(data, indent=4) print(pretty_json_str)
JavaScript
不管是浏览器环境还是Node.js里,直接用原生的JSON.stringify()方法就可以,同样支持美化输出:
// 对应你提供的JSON数据的JavaScript数组 const data = [ { "id": 1, "name": "Instant Coffee", "price": 28.53, "on_hand_quantity": 27 }, { "id": 2, "name": "Cranberries - Dry", "price": 30.02, "on_hand_quantity": 29 } ]; // 生成普通JSON字符串 const jsonStr = JSON.stringify(data); console.log(jsonStr); // 生成带2空格缩进的美化版 const prettyJsonStr = JSON.stringify(data, null, 2); console.log(prettyJsonStr);
Java
Java可以用Jackson这个常用的JSON处理库,先引入依赖,再写代码:
首先是Maven依赖(如果用Gradle的话对应调整即可):
<dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.15.2</version> </dependency>
然后是代码实现:
import com.fasterxml.jackson.databind.ObjectMapper; import java.util.List; import java.util.Map; public class JsonToStringDemo { public static void main(String[] args) throws Exception { // 对应你提供的JSON数据的List集合 List<Map<String, Object>> data = List.of( Map.of("id", 1, "name", "Instant Coffee", "price", 28.53, "on_hand_quantity", 27), Map.of("id", 2, "name", "Cranberries - Dry", "price", 30.02, "on_hand_quantity", 29) ); ObjectMapper mapper = new ObjectMapper(); // 生成紧凑JSON字符串 String jsonStr = mapper.writeValueAsString(data); System.out.println(jsonStr); // 生成美化版JSON字符串 String prettyJsonStr = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(data); System.out.println(prettyJsonStr); } }
C#
在.NET Core 3.0及以上版本,直接用内置的System.Text.Json命名空间就能实现,不用额外安装包:
using System; using System.Text.Json; class Program { static void Main() { // 用匿名类型对应你的JSON数据结构 var data = new[] { new { id = 1, name = "Instant Coffee", price = 28.53, on_hand_quantity = 27 }, new { id = 2, name = "Cranberries - Dry", price = 30.02, on_hand_quantity = 29 } }; // 生成普通JSON字符串 string jsonStr = JsonSerializer.Serialize(data); Console.WriteLine(jsonStr); // 生成带缩进的美化版 var options = new JsonSerializerOptions { WriteIndented = true }; string prettyJsonStr = JsonSerializer.Serialize(data, options); Console.WriteLine(prettyJsonStr); } }
另外补充一句:如果你的需求其实是把JSON字符串解析成编程语言中的对象(也就是反序列化),那上面的方法反过来用就行——比如Python用json.loads(),JavaScript用JSON.parse(),Java用mapper.readValue(),C#用JsonSerializer.Deserialize()。
内容的提问来源于stack exchange,提问作者chuong trung vuong
相关产品推荐
相关产品推荐

