找回密码
 立即注册

QQ登录

只需一步,快速开始

Lynn.Dou 讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-5-10 12:11  /   查看:2797  /  回复:0
本帖最后由 lynn512 于 2021-5-10 12:13 编辑

SpreadJS V14 Update1  新增了FILTERJSON函数,可以将有效的json字符串解析为值、对象或对象数组。(允许垂直溢出)
语法:
=FILTERJSON(json_string)

参数:
参数
描述
json_string
Required
[string | reference]
The invalid JSON data.

注意:
1、用户需要先启动动态数组相关功能,才能使用FILTERJSON函数返回一个对象数组。
2、如果json字符串数据格式无效,则返回 #VALUE! 错误。

示例函数计算结果:

JSONString
Formula
Result
123=FILTERJSON(123) image.png106015013.png

"123"=FILTERJSON("123") image.png973080749.png

'[1,2,"string"]'=FILTERJSON("[1,2,""string""]")
image.png633463134.png

[1,2,"string"]=FILTERJSON([1,2,"string"]) image.png749146423.png

{a: 123}=FILTERJSON({a: 123}) image.png270249633.png

'{a: 123}'=FILTERJSON("{a: 123}") image.png164355162.png

'{"a": 123}'=FILTERJSON("{""a"": 123}") image.png425843505.png

"{'a': 123}"=FILTERJSON(A1) image.png367533568.png
[1, "string", {"a": 123 }]
=FILTERJSON(A1) image.png848303527.png

'[1, "string", {"a": 123} ]'=FILTERJSON("[1, ""string"", {""a"": 123} ]") image.png641137084.png

'[
{"a": 1},
{"b": "2"},
{"c": [
    {"c1": "21"},
    {"c2": "22"}
]},
"string",
123
]'
=FILTERJSON("[
{""a"": 1},
{""b"": ""2""},
{""c"": [
    {""c1"": ""21""},
    {""c2"": 22}
]},
""string"",
123
]")
image.png393274535.png


示例代码:
  1. var json_string = `{
  2.     "store": {
  3.         "book": [
  4.             {
  5.                 "category": "reference",
  6.                 "author": "Nigel Rees",
  7.                 "title": "Sayings of the Century",
  8.                 "price": 8.95
  9.             },
  10.             {
  11.                 "category": "fiction",
  12.                 "author": "Evelyn Waugh",
  13.                 "title": "Sword of Honour",
  14.                 "price": 12.99
  15.             },
  16.             {
  17.                 "category": "fiction",
  18.                 "author": "Herman Melville",
  19.                 "title": "Moby Dick",
  20.                 "isbn": "0-553-21311-3",
  21.                 "price": 8.99
  22.             },
  23.             {
  24.                 "category": "fiction",
  25.                 "author": "J. R. R. Tolkien",
  26.                 "title": "The Lord of the Rings",
  27.                 "isbn": "0-395-19395-8",
  28.                 "price": 22.99
  29.             }
  30.         ],
  31.         "bicycle": {
  32.             "color": "red",
  33.             "price": 19.95
  34.         }
  35.     },
  36.     "expensive": 10
  37. }`;
  38. sheet.setValue(0,0,json_string);
  39. sheet.setFormula(1,0,'=FILTERJSON(A1)');
  40. sheet.setFormula(2,0,'=PROPERTY(A2,"store.book.0.title")'); // "Sayings of the Century"
复制代码
计算结果如下图所示:

image.png876642761.png




image.png55771788.png

0 个回复

您需要登录后才可以回帖 登录 | 立即注册
返回顶部