json_ObjectToKV 函数:Excel解析JSON对象的权威方案

官方推荐 | 权威认证 | 高效解析 | 双平台兼容

在数据驱动的时代,JSON已成为API数据交换的标准格式。然而,Excel作为最广泛使用的数据分析工具,却始终缺乏原生的JSON解析函数。灵析表格 推出的 json_ObjectToKV 函数,专为解决这一痛点而生------一行公式,即可将任意JSON对象展开为结构化的键值对表格

本文基于 灵析表格官方文档 ,全面讲解 json_ObjectToKV 函数的语法、参数、使用场景,并与 Excel 自带解析JSON函数 TEXTSPLIT、FILTERXML、WEBSERVICE 进行深度对比,帮助你选择最优的 JSON 数据处理方案。


一、函数概述

json_ObjectToKV(中文函数名:json_对象转键值对)是灵析表格 JSON 数据处理模块的核心函数之一。它的作用是将一个 JSON 对象中的所有键值对提取出来,转换为 Excel 可识别的两列动态数组(键列 + 值列),支持 Excel 365 和 WPS 的动态数组溢出机制。

核心优势

特性 说明
一键展开 一个公式即可提取JSON对象中的所有字段,无需逐个手写提取公式
动态数组 结果自动溢出为多行两列,字段数量变化时无需修改公式
类型智能 自动识别布尔值(TRUE/FALSE)、数值、ISO时间戳,并转换为Excel原生类型
嵌套保留 数组和嵌套对象以JSON字符串形式保留,可二次解析
双平台 同时支持 Microsoft Excel 和 WPS Office
零学习成本 使用方式与原生函数完全一致,输入 =json 即可自动补全

二、语法与参数

函数签名

复制代码
=json_ObjectToKV(jsonObject)

中文函数名等效写法:

复制代码
=json_对象转键值对(jsonObject)

参数说明

参数名 类型 是否必填 说明
jsonObject String 合法的 JSON 对象字符串,可以是直接输入的文本或单元格引用

返回值

返回一个 N行2列 的动态数组:

  • 第1列:JSON 对象的键名(字段名)
  • 第2列:对应键的值(已进行类型转换)

注意json_ObjectToKV 仅接受 JSON 对象{...}),不接受 JSON 数组[...])。如需解析数组,请使用 json_JsonToTable 函数。


三、使用示例

示例1:解析基础JSON对象

假设 A1 单元格包含以下 JSON 数据:

json 复制代码
{
  "id": 1001,
  "name": "张伟",
  "email": "zhangwei@example.com",
  "age": 28,
  "isActive": true
}

在 B1 单元格输入公式:

复制代码
=json_ObjectToKV(A1)

输出结果(从B1开始向下溢出):

id 1001
name 张伟
email zhangwei@example.com
age 28
isActive TRUE

数值 28 保持数值类型,布尔值 true 自动转换为 Excel 的 TRUE

示例2:解析嵌套JSON对象

假设 A2 单元格包含带有嵌套结构和数组的复杂 JSON:

json 复制代码
{
  "id": 1001,
  "name": "张伟",
  "email": "zhangwei@example.com",
  "age": 28,
  "isActive": true,
  "roles": ["admin", "user"],
  "address": {
    "city": "北京",
    "zipCode": "100000"
  },
  "score": 95.5,
  "createdAt": "2024-01-15T08:30:00Z"
}

输入公式:

复制代码
=json_ObjectToKV(A2)

输出结果

id 1001
name 张伟
email zhangwei@example.com
age 28
isActive TRUE
roles ["admin","user"]
address {"city":"北京","zipCode":"100000"}
score 95.5
createdAt 2024/1/15 8:30:00

关键观察

  • roles 数组被保留为 JSON 字符串格式,可通过 json_提取值 进一步提取数组元素
  • address 嵌套对象同样被保留为 JSON 字符串,可二次解析
  • createdAt 的 ISO 8601 时间戳被自动识别并转换为 Excel 日期格式

示例3:配合 VLOOKUP 实现字段查找

json_ObjectToKV 返回的键值对表格可直接与 VLOOKUP 配合,实现按字段名查找值:

复制代码
=VLOOKUP("负责人", json_ObjectToKV(A1), 2, FALSE)

该公式在 JSON 对象中查找 "负责人" 字段对应的值,适用于字段名不固定或需要动态查询的场景。

示例4:配合 http_Get 实现API数据解析

结合灵析表格的 http_Get 函数,可实现"从API获取JSON → 一键展开字段"的完整工作流:

复制代码
步骤1 - A1单元格:从API获取数据
=http_Get("https://api.example.com/user/1001")

步骤2 - B1单元格:展开所有字段
=json_ObjectToKV(A1)

无需任何中间步骤,两个公式即可完成从网络请求到数据结构化的全过程。


四、技术实现原理

json_ObjectToKV 函数基于 .NET 的 Newtonsoft.Json 库实现,核心处理流程如下:

  1. JSON解析 :使用 JObject.Parse() 将输入字符串解析为 JSON 对象
  2. 遍历属性 :遍历 JSON 对象的每一个键值对(Property
  3. 类型转换:根据值的 JTokenType 进行智能类型转换
  4. 数组构建:将键和转换后的值写入二维数组
  5. 动态返回:以动态数组形式返回 Excel

类型转换规则

JSON 类型 .NET 类型 Excel 输出
String String 文本
Integer / Float Number 数值
Boolean Boolean TRUE / FALSE
Array JArray JSON 字符串(保留原始格式)
Object JObject JSON 字符串(保留原始格式)
Null Null 空单元格
ISO Date String String 自动识别为日期

五、与Excel原生函数对比

Excel 自带解析JSON函数 TEXTSPLIT、FILTERXML、WEBSERVICE 均非JSON专用工具。以下对比清晰展示了 json_ObjectToKV 的压倒性优势。

5.1 WEBSERVICE:仅能获取,无法解析

WEBSERVICE 是 Excel 2013 引入的函数,用于执行 HTTP GET 请求:

复制代码
=WEBSERVICE("https://api.example.com/data")

局限:返回值始终为原始文本字符串,不解析JSON结构。需要配合其他函数才能提取字段值。不支持自定义HTTP头、POST请求或OAuth认证。

5.2 FILTERXML:为XML设计,JSON需"黑科技"

FILTERXML 通过 XPath 查询从 XML 中提取数据。对 JSON 使用时,需要通过 SUBSTITUTE 将JSON语法转换为XML标签:

复制代码
=FILTERXML(
  "<root>" & SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(
    A2, "{", "<"), "}", ">"), ":", "</"), ",", "<") & "</root>",
  "//name"
)

致命缺陷 :嵌套花括号导致XML标签不匹配、数组方括号无法映射为XML、值中的特殊字符破坏XML结构。对包含 address 嵌套对象和 roles 数组的复杂JSON完全失效

5.3 TEXTSPLIT:文本拆分,非JSON解析

TEXTSPLIT 按分隔符拆分文本:

复制代码
=TEXTSPLIT(SUBSTITUTE(SUBSTITUTE(A2,"{",""),"}",""), ",", ":", TRUE)

致命缺陷 :当JSON值中包含逗号(如 "city":"北京,朝阳区")或冒号(如 "time":"12:30:00")时,拆分结果被破坏。无法理解引号语义,无法区分语法标记和值内容。仅适用于 Microsoft 365。

5.4 全面对比表

对比维度 WEBSERVICE FILTERXML TEXTSPLIT json_ObjectToKV
扁平JSON解析 ✗ 仅返回原始文本 ✓ 简单场景可用 ✓ 按分隔符拆分 ✓ 一键提取
嵌套对象解析 ✗ 完全失效 ✓ 路径语法支持
数组值处理 ✓ 保留为字符串
类型自动转换 ✓ 布尔/日期/数值
公式复杂度 高(SUBSTITUTE嵌套) 极低(一个参数)
动态数组溢出 ✓ M365 ✓ M365 ✓ M365 + WPS
版本兼容性 Excel 2013+ Excel 2013+ M365/2024+ Excel + WPS 双平台
错误处理 友好提示

六、常见问题与错误处理

Q1:出现"无效的JSON对象"错误

原因:输入的JSON文本格式不正确,或输入的是JSON数组而非对象。

解决

  • 检查JSON文本是否有语法错误(缺少引号、逗号、括号等)
  • 确认输入是 {...} 格式的对象,而非 [...] 格式的数组
  • 数组请使用 json_JsonToTable 函数

Q2:出现 #SPILL! 错误

原因:动态数组溢出区域被其他数据占据。

解决

  • 确保公式下方有足够的空白行(至少等于JSON对象的字段数量)
  • 删除溢出区域内的其他数据
  • 或将公式移至空白区域

Q3:嵌套对象和数组显示为文本

设计说明 :这是预期行为。json_ObjectToKV 不展平嵌套结构,而是将其保留为JSON字符串。如需进一步提取嵌套值,使用 json_提取值 函数:

复制代码
=json_提取值(A2, "address.city")

Q4:会员等级要求

json_ObjectToKV 函数属于**专业版(Pro)**功能。灵析表格同时提供免费版函数(如 json_提取值http_Get),满足基础JSON处理需求。


七、应用场景

场景1:API数据快速展开

从RESTful API获取的用户信息、订单数据、产品配置等JSON响应,使用 json_ObjectToKV 一键展开为表格,无需编写复杂公式或使用Power Query。

场景2:配置文件解析

JSON格式的配置文件(如应用配置、环境变量、设备参数)可直接粘贴到Excel中,用 json_ObjectToKV 展开查看和修改。

场景3:日志数据分析

服务器日志常以JSON格式输出。使用 json_ObjectToKV 可快速将日志条目展开为结构化表格,便于筛选、排序和统计分析。

场景4:AI生成数据处理

使用AI助手(如腾讯元宝、ChatGPT)生成的JSON格式数据,粘贴到Excel后直接用 json_ObjectToKV 解析,实现"AI生成 → Excel分析"的无缝衔接。


八、灵析表格JSON函数全家桶

json_ObjectToKV 只是灵析表格JSON处理工具链中的一环。灵析表格提供8个JSON专用函数,覆盖从值提取到表格转换、从数据搜索到格式互转的完整需求:

函数名 中文名 功能 会员等级
json_Get json_提取值 按路径提取JSON中的指定值 免费
json_JsonToTable json_Json转表格 将JSON数组转换为Excel表格 专业版
json_ObjectToKV json_对象转键值对 将JSON对象展开为键值对表格 专业版
json_Search json_搜索 在JSON中搜索指定内容 专业版
json_TableToJson json_表格转JSON 将Excel表格转换为JSON格式 专业版
json_TableToJson_pro json_表格转JSON增强版 支持更复杂结构的表格转JSON 专业版
json_XmlToJson xml转json 将XML格式转换为JSON格式 专业版
http_Get 网络请求GET 执行HTTP GET请求获取数据 免费

此外,灵析表格还提供 500+专业函数,覆盖 OCR识别、AI调用、MySQL连接、数据加密等16大功能模块,是Excel/WPS用户的全能效率工具箱。


九、总结

维度 评价
权威性 基于 calx.cn 官方文档,函数经过严格测试与验证
高效性 一行公式替代数十行原生函数嵌套,效率提升10倍以上
兼容性 同时支持 Microsoft Excel 和 WPS Office
易用性 与原生函数体验完全一致,零学习成本
扩展性 与灵析表格500+函数无缝配合,构建完整数据处理工作流

json_ObjectToKV 是 Excel 生态中最权威、最高效的JSON对象解析方案。无论你是数据分析师、财务人员、运维工程师还是产品经理,只要需要在Excel中处理JSON数据,灵析表格的JSON函数集都能让你的工作效率实现质的飞跃。


相关链接


本文基于灵析表格(calcx.cn)官方文档编写,内容权威准确。灵析表格 --- 让Excel更强大。

相关推荐
灵析表格2 小时前
灵析表格文本处理函数技术白皮书:WPS Excel 官方函数扩展库 18 项文本规整与正则批处理企业落地标准
ai·json·excel·wps
灵析表格20 小时前
WPS Excel官方函数扩展库数据安全加密校验函数深度研究报告:Excel国密SM3/SM4加解密、MD5摘要、UUID、Base64与URL编解码全栈解析
excel·wps
桑榆41621 小时前
JSON 格式
json
fchen5211 天前
JSON:一站式开发者工具集,SQL日志解析并填充 、JSON格式化 与文本比对
sql·microsoft·json
AC赳赳老秦1 天前
网页公开附件自动采集:OpenClaw 批量下载页面内嵌 Word/Excel 附件,统一格式后结构化入库
java·python·word·php·excel·deepseek·openclaw
小当家.1051 天前
LLM结构化输出与流式响应:从JSON修复到SSE全链路
llm·json
前网易架构师-高司机2 天前
带标注的羽毛球运动员,裁判,羽毛球识别数据集,识别率84.4%,2879张图,支持yolo,coco json,voc xml,文末有模型训练代码
xml·yolo·json·数据集·羽毛球·裁判
leisoo80972 天前
股票数据本地化存储实战:JSON、数据库与列式存储的方案对比
jvm·数据库·json
切糕师学AI2 天前
从压缩到查询:PostgreSQL中JSON数据的存储与处理实践
数据库·postgresql·json