You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 00:33:24