主要内容

jsonencode

从结构化创建JSON格式的文本马铃薯数据

描述

例子

txt = jsonencode (数据编码数据并返回JSON格式的字符向量。

txt = jsonencode (数据名称,值编码数据使用一个或多个名称-值对参数。

例子

全部折叠

值= {“一个”'二''三'};jsonencode(价值)
ans = '[“一”,“两个”,“三”)”

jsonencode编码枚举,无属性作为字符串。

在= matlab.lang.OnoffSwitchState.on;jsonencode(开)
ans ='上“'

默认情况下,jsonencode将枚举属性编码为JSON字符串。您可以自定义此行为。

创造SyntaxColors类显示在定义枚举类中的属性属性和一个枚举

jsonencode将枚举编码为JSON字符串。

jsonencode (SyntaxColors.Error)
ans ='“错误”'

添加一个自定义jsonencode函数。该函数必须具有与matlab相同的签名®jsonencode函数。更新后的方法块:

方法函数c = SyntaxColors(r, g, b);c.G = g;c.B = b;结束函数Json = jsonencode(obj, varargin) s = struct(“R”,obj.r,'G'obj。克,'B',obj.b);json = jsonencode(s,varargin {:});结束结束

创建结构并显示编码值调用jsonencode中定义的SyntaxColors

呃= SyntaxColors.Error;s =结构(“错误”,错);jsonencode (s)
ans = "{"错误":{“R”:1、“G”:0,“B”:0}}”

将包含不同数据类型的结构转换为JSON。

s.Width = 800;s.Height = 600;s.Title =“从15层往下看”;s.Animated = false;s.s id = [116,943, 234,38793];jsonencode(年代,“PrettyPrint”,真的)
ans ='{“宽度”:800,“高度”:600,“标题”:“从15楼的视图”,“动画”:false,“ID”:[116,943,234,38793]}'

输入参数

全部折叠

MATLAB数据,指定为任何支持的MATLAB数据类型。万博1manbetx有关更多信息,请参见限制.有关定制的信息jsonencode枚举,请参阅使用属性自定义编码枚举

例子:s.i. = [116, 943, 234, 38793]

名称-值对的观点

指定可选的逗号分隔的对名称,值论点。名称参数名和价值为对应值。名称必须出现在引号内。可以以任意顺序指定多个名称和值对参数name1,value1,...,namen,valuen

例子:jsonencode(-inf,'convertinfandnan',false)

特殊浮点值的自定义编码NaN,INF,-INF,指定为真正的.一个真正的值对浮点值进行编码为.一个Value将值编码为文字, 要么-无穷

数据类型:逻辑

添加缩进,指定为真正的.MATLAB显示JSON文本,缩小两个空格。

数据类型:逻辑

限制

  • jsonencode不支持复数或稀疏数万博1manbetx组。对象必须具有编码为名称-值对的公共属性得到对象属性定义的方法。

  • jsonencode不支持递归结构,例万博1manbetx如包含对父和子对象引用的图形对象。

  • 如果编码,则解码值,Matlab不保证数据类型保留。JSON支万博1manbetx持比MATLAB更少的数据类型,这导致丢失类型信息。例如,JSON数据不区分双倍的INT32..如果编码一个INT32.价值然后致电JSondecode.,解码值是类型双倍的

  • MATLAB不保证阵列的形状被保留。例如,一个1-by-n数字矢量被编码为阵列。如果你打电话JSondecode., MATLAB将该数组解码为n × 1向量。

提示

  • 保留纽诺逃生人物\ n,可以使用新队函数。

    jsonencode([“一个”新队'二'])
    ans ='“一个\ ntwo”'
  • 保留其他逃避角色,考虑呼叫sprintf在输入。测试您的输入,看看是否sprintf创建所需的结果。

    jsonencode (sprintf (“AB \浴室”))
    ans = '“AB \浴室”
  • 如果输入包含双引号字符,然后函数插入逃生人物。

    jsonencode('一二'
    ans ='“一个”两个“'

算法

JSON支万博1manbetx持比MATLAB更少的数据类型。jsonencode将MATLAB数据类型转换为这里列出的JSON数据类型。

matlab数据类型

JSON数据类型

例子

输出

数组,空

数组,空

jsonencode ([])
jsonencode(string.empty)
'[]'

逻辑标量

布尔基

jsonencode(真正的)
“真正的”

逻辑矢量

一系列布尔

jsonencode([true,false,false])
(真的,假的,假的)的

逻辑阵列

嵌套的布尔数组

jsonencode(逻辑([0,1,0,1,1,0]))
'[[[虚假,真,假],[真实,真,假]]'

字符向量

字符串

jsonencode(“这是一个字符。”
“这是一个炭。”

字符数组

字符串数组

jsonencode(['ac''例如'])
”(“交流”,“如”)”

字符串标量

字符串

jsonencode(“这是一根绳子。”
“这是一个字符串。”'

字符串向量

字符串数组

jsonencode([“交流”“如”])
”(“交流”,“如”)”

字符串数组

嵌套字符串数组

jsonencode([“交流”“如”“BD”“跳频”])
'[[ac“,”例如“],[”bd“,”fh“]'

空字符矢量

字符串

jsonencode(''
'“”

<缺失>

jsonencode(String(nan))
'无效的'

数字标量

数量

jsonencode(2.5)
“2.5”

数值向量

一系列的数字

jsonencode (1:3)
“[1,2,3]”

数字数组

嵌套数组

jsonencode(眼(2))
'[[1,0],[0,1]]'

复数

不支持万博1manbetx

表格

一系列对象

名称= {“琼斯”'棕色的'};年龄= [40; 49];jsonencode(表(名称,年龄)))
“[{“名称”:“琼斯”,“年龄”:40},{“名称”:“褐色”,“年龄”:49}]”

小区标量

1元素数组

jsonencode ({5})
'[5]'

细胞向量

数组

jsonencode({'一种',真实,[2; 3]})
'[“A”,真实,[2,3]]'

单元阵列

数组平展为一维

jsonencode({1 2; 3 4})
'[1,3,2,4]'

结构标量
对象标量

目的
对象(编码为名称-值对。)

jsonencode(struct('一种''价值'))
'{“一个值”}'

结构矢量
对象的向量

一系列对象

jsonencode(struct('一种',{true,true,false}))
'[{“a”:true},{a“:true},{a”:false}]'

结构阵列
对象数组

嵌套对象数组

datetime标量

字符串(细绳方法用于将日期和时间转换为字符串格式。)

jsonencode (datetime ('明天'))
'“04-11-2016”

datetime向量

字符串数组

dt = datetime({'2015年4月8日'2015年5月9日的},......'InputFormat'“d嗯yyyy”);jsonencode(dt)
'[“08-APR-2015”,“2015年5月 -  2015年”]“

datetime数组

嵌套字符串数组

dt = datetime(......[{2015年4月的'2015年5月'}, {'2015年6月'2015年7月的}),......'InputFormat''mmmm yyyy');jsonencode(dt)
'[[01-APR-2015“,”01-May-2015“],[”01-Jun-2015“,”01-Jul-2015“]'

分类标量

字符串(细绳用于创建字符串格式的方法。)

jsonencode(分类({“r”})))
'“r”'

分类向量

字符串数组

jsonencode(分类({“r”'G''B'})))
(“r”、“g”、“b”)”

分类数组

嵌套字符串数组

jsonencode(分类(......“r”'B''G'......'G'“r”'B'......'B'“r”'G'})))
'[[r“,”b“,”g“],[”g“,”R“,”b“],[”b“,”r“,”g“]'

容器.map.

目的

jsonencode(容器。地图(......“1月”'2月'“3”},......[327368197]))
”{2月”:368年,“简”:327年,“3”:197}”


INF.

jsonencode([1、2、南3正))
'[1,2,null,3,null]'

枚举

字符串

jsonencode (matlab.lang.OnOffSwitchState.on)
“”“”

将Scalar Matlab对象传递为标量JSON数组(括入[]字符),使用单元格数组构造操作符转换对象{}.例如,下面的代码转换特征字段到标量JSON数组中。

S =结构(“特征”结构(“类型”“特性”“几何”......结构(“类型”“观点”“坐标”,[-105,40]))))));s.features = {s.features};s = jsonencode
年代={“特征”:[{“类型”:“特性”、“几何”:{“类型”:“点”、“坐标”:[-105,40]}}]}”

兼容性的考虑

展开全部

行为在R2017b中改变

另请参阅

|

介绍了R2016b