主要内容

jsonencode

从结构化文档创建JSON格式的文本MATLAB数据

描述

实例

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

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

例子

全部崩溃

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

jsonencode将没有属性的枚举编码为字符串。

on=matlab.lang.OnOffSwitchState.on;jsonencode(on)
ans=““开””

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

创建合成色素中显示的类在枚举类中定义属性具有性质列举.

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

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

添加自定义的jsonencode函数。函数必须具有与MATLAB相同的签名®jsonencode功能。更新的方法区块为:

方法作用c=SyntaxColors(r,g,b)c.r=r;c.g=g;c.b=b;终止作用json=jsonencode(obj,varargin)s=struct(“R”,obj.R,“G”,obj.G,“B”,obj.B);json=jsonencode(s,varargin{:});终止终止

创建一个结构并显示调用的编码值jsonencode定义于合成色素.

err=SyntaxColors.Error;s=struct(“错误”,err);jsonencode
ans='{“错误”:{“R”:1,“G”:0,“B”:0}'

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

s、 宽度=800;标准高度=600;标准标题=“从15楼看”;s.Animated=false;s.id=[11694323438793];jsonencode(s,“预打印”,对)
ans=“{“宽度”:800,“高度”:600,“标题”:“从15楼观看”,“动画”:假,“ID”:[11694323438793]}”

输入参数

全部崩溃

MATLAB数据,指定为任何支持的MATLAB数据类型。有关金宝app更多信息,请参阅局限性。以获取有关自定义的信息jsonencode有关枚举,请参见使用属性自定义编码枚举.

例子:s、 IDs=[11694323438793]

名称-值对参数

指定可选的逗号分隔的字符对名称、值论据。名称是参数名和价值是对应的值。名称必须出现在引号内。您可以按任意顺序指定多个名称和值对参数,如下所示:名称1,值1,…,名称,值.

例子:jsonencode(-Inf,'ConvertInfAndNaN',false)

特殊浮点值NaN、Inf和-Inf的自定义编码,指定为符合事实的错误的A.符合事实的value将浮点值编码为无效的A.错误的值将值编码为文字,无穷-无穷大.

数据类型:必然的

添加缩进,指定为符合事实的错误的.MATLAB以两个空格的缩进显示JSON文本。

数据类型:必然的

局限性

  • jsonencode不支持复数或稀疏数金宝app组。对象的公共属性必须编码为具有收到在对象属性上定义的方法。

  • jsonencode不支持递归结构,例金宝app如包含对父对象和子对象的引用的图形对象。

  • 如果对一个值进行编码,然后进行解码,则MATLAB不能保证数据类型被保留。JSON支持的数据类型比MATLAB少,这导致类型信息丢失。例如,JSON数据不区分金宝app双重的int32.如果您对int32值,然后调用jsondecode,则解码值为类型双重的.

  • MATLAB不能保证阵列的形状得到保留。例如,一个1×N的数值向量被编码为一个数组。如果你打电话jsondecode,然后MATLAB将数组解码为N×1矢量。

提示

  • 保留换行符转义字符的步骤\n,使用新线作用

    jsonencode([“一个”新线“两个”])
    ans='一个\n两个''
  • 保存其他\转义字符,考虑调用把格式数据写成串在输入。测试您的输入,看看是否把格式数据写成串创建所需的结果。

    jsonencode(sprintf(“AB\tCD”))
    ans=''AB\tCD''
  • 如果输入包含双引号字符",然后函数插入\转义字符。

    jsonencode(一“二”)
    ans='一\'二''

算法

JSON支金宝app持的数据类型比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”;“例如”])
“[“AC”,“EG”]”

字符串标量

一串

jsonencode(“这是一个字符串。”)
“这是一个字符串。”

字符串向量

字符串数组

jsonencode([“AC”;“例如”])
“[“AC”,“EG”]”

字符串数组

嵌套字符串数组

jsonencode([“AC”,“例如”;“BD”,“FH”])
“[“AC”、“EG”、“BD”、“FH”]”

空字符向量

一串

jsonencode('')
'""'

无效的

jsonencode(字符串(nan))
“空”

数值标量

数字

jsonencode(2.5)
'2.5'

数值向量

数列

jsonencode(1:3)
'[1,2,3]'

数字数组

嵌套数列

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

复数

不支持金宝app

桌子

对象数组

姓名={“琼斯”;“棕色”};年龄=[40;49];JSONECODE(表(名称、年龄))
“[{”姓名“:”琼斯“,”年龄“:40},{”姓名“:”布朗“,”年龄“:49}”

细胞标量

1元素数组

jsonencode({5})
'[5]'

细胞载体

大堆

jsonencode({“a”,true,[2;3]})
“[“a”,对[2,3]]

单元阵列

阵列展平为一维

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

结构标量
对象标量

对象
对象(公共属性编码为名称值成对的。)

JSONECODE(结构(“a”,“价值”))
“{”a:“值”}”

结构向量
目标向量

对象数组

JSONECODE(结构(“a”,{true,true,false})
“[{a:true},{a:true},{a:false}”

结构阵列
对象数组

嵌套对象数组

日期时间标量

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

jsonencode(日期时间)(“明天”))
“2016年11月4日”

日期时间向量

字符串数组

DT=日期时间({“2015年4月8日”,“2015年5月9日”},...“InputFormat”,“d嗯yyyy”);jsonencode(DT)
“[“2015年4月8日”、“2015年5月9日”]

日期时间数组

嵌套字符串数组

DT=日期时间(...[{“2015年4月”,“2015年5月”};{“2015年6月”,“2015年7月”}],...“InputFormat”,“MMMM-yyy”);jsonencode(DT)
“[“2015年4月1日”、“2015年5月1日”、“2015年6月1日”、“2015年7月1日”]”

范畴标量

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

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”]”

集装箱。地图

对象

jsonencode(containers.Map(...{“1月”,“二月”,“马尔”},...[327,368,197]))
“{“二月”:368,“一月”:327,“三月”:197}”


Inf

无效的

jsonencode([1,2,NaN,3,Inf])
“[1,2,null,3,null]”

列举

一串

jsonencode(matlab.lang.OnOffSwitchState.on)
"on"

将标量MATLAB对象作为标量JSON数组传递(包含在[]字符),使用单元数组构造运算符转换对象{}。例如,以下代码转换特征字段转换为标量JSON数组。

S=结构(“特征”,结构(“类型”,“功能”,“几何学”,...结构(“类型”,“点”,“坐标”, [-105, 40]))); S.features={S.features};s=jsonencode(s)
s='{“要素”:[{“类型”:“要素”,“几何体”:{“类型”:“点”,“坐标”:[-105,40]}}

兼容性考虑

全部展开

R2017b中的行为发生了变化

R2016b中引入