JSON中如何提取双键值对对象指定值生成对应新JSON对象
核心基础认知
JSON本身只是纯文本格式的数据表示规范,和TXT、CSV这类格式本质相同,只负责存储结构化数据,本身没有任何计算、数据处理能力。所有取值、转换、生成新JSON的操作,都必须借助编程语言实现。你提到的toJSON类方法,本质是编程语言内置的工具函数,作用是把内存里的可操作对象序列化成JSON格式的文本字符串。
标准处理流程
不管使用哪门编程语言,这类JSON转换操作的流程都是固定的3个核心步骤:
- 解析:把输入的JSON格式字符串,转换成对应编程语言里可直接操作的内存结构(比如字典、普通对象、结构体等)
- 组装:从解析完成的结构里取出目标键对应的值,按照你需要的新键名、新结构组装成新的内存对象
- 序列化:把新组装的内存对象,重新转换成符合JSON语法规范的字符串,就是最终的输出结果
以你提到的需求为例,合法输入为{"a": 123, "b": "test content"},要输出{"b'": "test content"},两种最常用语言的实现代码如下:
JavaScript 实现
// 输入JSON字符串(实际场景中通常来自接口返回、本地文件读取等) const inputJson = '{"a": 123, "b": "test content"}'; // 解析为JS可操作的普通对象 const parsedInput = JSON.parse(inputJson); // 组装新对象,取出原对象的b值,绑定到新键b'上 const newObj = { "b'": parsedInput.b }; // 序列化为输出JSON字符串 const outputJson = JSON.stringify(newObj); // 最终outputJson的值就是符合要求的'{"b'":"test content"}'
Python 实现
import json # 输入JSON字符串 input_json = '{"a": 123, "b": "test content"}' // 解析为Python可操作的字典 parsed_input = json.loads(input_json) // 组装新字典 new_obj = { "b'": parsed_input["b"] } // 序列化为输出JSON字符串 output_json = json.dumps(new_obj) # 最终output_json的值就是符合要求的'{"b'": "test content"}'
概念澄清与学习建议
- 你提到的「标识提取」本质就是结构化数据的键值读取操作,是所有编程语言处理数据的基础能力,和JSON格式本身没有强绑定,处理YAML、XML等其他格式的数据时,解析完成后的取值逻辑完全一致。
- 不要把JSON和编程语言里的对象/字典混淆:JSON只是数据序列化之后的文本表现形式,你无法直接对一段JSON文本做取值、修改操作,必须先完成解析步骤。
- 你举例里写的
{"a": a, "b":b}不是合法JSON,合法JSON的字符串类型值必须用双引号包裹,未定义的标识符不能直接作为JSON值使用,实际开发中如果输入的JSON格式不符合规范,解析步骤会直接抛出错误。 - 基础学习路径建议:
- 先花10分钟左右了解JSON的基础语法规则,明确JSON支持的6种数据类型(字符串、数字、布尔值、null、数组、对象),能判断什么是合法JSON即可
- 选你日常使用的编程语言,重点掌握它标准库自带的两个JSON处理方法:解析方法(JSON转语言内置结构)、序列化方法(语言内置结构转JSON),不需要额外引入第三方库,所有主流语言的标准库都覆盖了完整的基础JSON处理能力
- 基础阶段不用纠结JSONPath、动态转换这类进阶用法,把「解析-取值-组装-序列化」这个基础流程练熟,就能覆盖90%以上的日常使用场景
内容的提问来源于stack exchange,提问作者Theo Deep
相关产品推荐
相关产品推荐

