主要内容

本页采用了机器翻译。点击此处可查看最新英文版本。

MATLAB 数据类型的 JSON 表示

JavaScript 对象表示法或 JSON 是一种基于文本的数据交换格式,可跨编程语言使用。由于 JSON 独立于编程语言,因此您可以在 JSON 中表示 MATLAB® 数据类型。使用 MATLAB 数据类型的 JSON 表示,您可以

  • 表示客户端代码中的数据或变量,作为部署在服务器上的 MATLAB 函数的输入。

  • 解析来自 MATLAB Production Server™ 实例的响应,以便在客户端代码中进行进一步操作。

来自服务器的响应包含一个 JSON array,其中数组的每个元素对应于已部署的 MATLAB 函数的一个输出,以 JSON object 表示。

您可以使用两种符号格式在 JSON 中表示 MATLAB 数据类型:smalllarge

  • 小符号提供了 JSON 中 MATLAB 数据类型的简化表示。MATLAB 数据类型与其对应的 JSON 表示之间存在一一映射。您可以使用小符号来表示标量和多维 doublelogical 数据类型、标量和 1×N char 数据类型以及标量 struct

  • 大号表示法提供了 JSON 中 MATLAB 数据类型的通用表示。大格式使用由属性名称-值对组成的 JSON object 符号来表示数据。对于任何无法用小符号表示的 MATLAB 数据类型,您可以使用大符号表示法。MATLAB Production Server 的响应默认使用大写字母。

大表示法中的 JSON object 包含以下属性名称-值对。

属性名称属性值
"mwdata"JSON array 代表实际数据。通过将数据作为逗号分隔的列表括在 [] 内来指定属性值。
"mwsize"JSON array 表示数据的维度。通过将维度作为逗号分隔的列表括在 [] 内来指定属性值。
"mwtype"

JSON string 表示数据类型。在 "" 内指定属性值。

 "double"  |  "single"  | "int8"   |  
 "uint8"   |  "int16"   | "uint16" | 
 "int32"   |  "uint32"  | "int64"  | 
 "uint64"  |  "logical" | "char"   | 
 "struct"  |  "cell"    | "string" | 
 "datetime"|  "<class name of enumeration>" 

"mwcomplex"对于复数,将属性值设置为 JSON true

MATLAB Compiler SDK™ 提供了以下实用函数用于 MATLAB 和 JSON 之间的数据转换。

函数名称目的
mps.json.encoderequest (MATLAB Compiler SDK)使用 MATLABMATLAB Production Server JSON 模式将服务器请求中的数据转换为 JSON 文本。
mps.json.decoderesponse (MATLAB Compiler SDK)将服务器响应的 JSON 文本转换为 MATLAB 数据。
mps.json.encode (MATLAB Compiler SDK)使用 MATLABMATLAB Production Server JSON 模式将数据转换为 JSON 文本。
mps.json.decode (MATLAB Compiler SDK)MATLAB Production Server JSON 模式中的字符向量或字符串转换为 MATLAB 数据。

RESTful API 支持以下 MATLAB 数据类型。

数值类型:doublesingle 和整数

  • mwdata 属性必须是 JSON 数字的 JSON 数组。

  • mwtype 属性可以是 doublesingleint8uint8int16uint16int32uint32int64uint64 中的任意一个。

  • 您不能使用 JSON 小写符号表示标量或多维 single 和整数类型。

  • 从 R2020a 开始,int64uint64 数字在其 JSON 表示中保持精度和范围,因为它们不会转换为 double

标量数值类型:doublesingle 和整数

  • mwdata 属性必须是一个 JSON 数组,其中包含一个表示 MATLAB 标量值的 JSON 数字。

  • mwsize 属性必须是包含 1,1 的 JSON 数组。

标量数值类型的 JSON 表示:doublesingle 和整数

MATLAB 数据类型JSON 小表示法JSON 大表示法

single, int8, uint8, int16, uint16,

int32, uint32, int64, uint64

没有小表示法
{
    "mwdata": [JSON number],
    "mwsize": [1,1],
    "mwtype": "single" | "int8" | "uint8"  | "int16" | "uint16" | 
             "int32" | "uint32" | "int64" | "uint64"
}
doubleJSON 数值
{
    "mwdata": [JSON number],
    "mwsize": [1,1],
    "mwtype": "double" 
}

MATLAB 数据:标量数值

JSON 小表示法JSON 大表示法
int8(23)没有小表示法
{
    "mwdata": [23],
    "mwsize": [1,1],
    "mwtype": "int8"
}
uint8(27)没有小表示法
{
    "mwdata": [27],
    "mwsize": [1,1],
    "mwtype": "uint8"
}
single(20.15)没有小表示法
{
    "mwdata": [20.15],
    "mwsize": [1,1],
    "mwtype": "single"
}
intmax('int64')没有小表示法
{
    "mwdata": [9223372036854775807],
    "mwsize": [1,1],
    "mwtype": "int64"
}
double(12.905)12.905
{
    "mwdata": [12.905],
    "mwsize": [1,1],
    "mwtype": "double" 
}
4242
{
    "mwdata": [42],
    "mwsize": [1,1],
    "mwtype": "double" 
}

多维数值类型:doublesingle 和整数

  • mwdata 属性必须是一个 JSON 数组,其中包含按列主序排列的多维数组数据。此顺序对应于 MATLAB 中的默认内存布局。

  • 使用小符号时,必须使用嵌套 JSON 数组来表示 double 数组(N-by-1 double 数组除外)

  • 不能使用 JSON 小写符号表示多维 single 和整数类型。

MATLAB 数据:多维 double 数组

JSON 小表示法JSON 大表示法
[1,2,3;...
 4,5,6]
[[1,2,3],[4,5,6]]
{
    "mwdata":[1,4,2,5,3,6],
    "mwsize":[2,3],
    "mwtype":"double"
}
[1, NaN, -Inf;...
 2, 105,  Inf]
[[1,{"mwdata": "NaN"},{"mwdata": "-Inf"}],[2,105,{"mwdata": "Inf"}]]
{
    "mwdata":[1, 2, "NaN", 105, "-Inf", "Inf"],
    "mwsize":[2,3],
    "mwtype":"double"
}
[ 1 2; 4 5; 7 8 ]
[[1, 2], [4, 5], [7, 8]]
{
    "mwdata":[1,4,7,2,5,8],
    "mwsize":[3,2],
    "mwtype":"double"
}
a(:,:,1) =
 
     1     2
     3     4
     5     6
 
a(:,:,2) =
 
     7     8
     9     10
     11    12
[[[1,7],[2,8]],[[3,9],[4,10]],[[5,11],[6,12]]]
{
    "mwdata":[1,3,5,2,4,6,7,9,11,8,10,12],
    "mwsize":[3,2,2],
    "mwtype":"double"
}
[17;500]
[17,500]
{
    "mwdata":[17,500],
    "mwsize":[2,1],
    "mwtype":"double"
}
[17,500]
[[17,500]]
{
    "mwdata":[17,500],
    "mwsize":[1,2],
    "mwtype":"double"
}

数值类型:NaNInf-Inf

  • NaNInf-Inf 是数值类型,其底层 MATLAB 类只能是 doublesingle。您不能将 NaNInf-Inf 表示为 MATLAB 中的整数类型。

MATLAB 数据:NaNInf-InfJSON 小表示法JSON 大表示法
NaN
{"mwdata":"NaN"}
{
    "mwdata": ["NaN"],
    "mwsize": [1,1],
    "mwtype": "double"
}

{
    "mwdata": [{"mwdata":"NaN"}],
    "mwsize": [1,1],
    "mwtype": "double"
}
Inf
{"mwdata":"Inf"}
{
    "mwdata": ["Inf"],
    "mwsize": [1,1],
    "mwtype": "double"
}

{
    "mwdata": [{"mwdata":"Inf"}],
    "mwsize": [1,1],
    "mwtype": "double"
}
-Inf
{"mwdata":"-Inf"}
{
    "mwdata": ["-Inf"],
    "mwsize": [1,1],
    "mwtype": "double"
}

{
    "mwdata": [{"mwdata":"-Inf"}],
    "mwsize": [1,1],
    "mwtype": "double"
}

数值类型:复数

  • mwdata 属性值必须包含并排表示的复数的实部和虚部。

  • 您必须设置一个附加属性 mwcomplex,其值为 true

  • mwtype 属性可以是 doublesingleint8uint8int16uint16int32uint32int64uint64 中的任意一个。

  • 您不能使用小写符号来表示复数。

复数的 JSON 表示

MATLAB 数据JSON 大表示法
a + bi
{
    "mwcomplex": true,
    "mwdata": [a,b],
    "mwsize": [1,1],
    "mwtype": "double"
}

MATLAB 数据:标量复数JSON 大表示法
int32(3 + 4i)
{
    "mwcomplex": true,
    "mwdata": [3,4],
    "mwsize": [1,1],
    "mwtype": "int32"
}

MATLAB 数据:复数多维数组JSON 大表示法
[1 - 2i;...
 3 + 7i]
{
    "mwcomplex": true,
    "mwdata":[1, -2, 3, 7],
    "mwsize":[2,1],
    "mwtype":"double",
}

字符数组

  • mwdata 属性必须是 JSON strings 数组。

  • mwtype 属性必须具有 char 的值。

  • 您可以用小符号表示标量字符和 1×N 字符数组。

  • 无法以大符号表示多维字符数组。

char 的 JSON 表示

MATLAB 数据类型JSON Small Notation(用于标量和一维字符数组)JSON 大表示法
charJSON string
{
   "mwdata": [JSON string],
   "mwsize": [<char dimensions>],
   "mwtype": "char"
}

MATLAB 数据:标量和一维字符数组JSON 小表示法JSON 大表示法
'a'"a"
{  
    "mwdata": ["a"],
    "mwsize": [1,1],
    "mwtype": "char"
}
'hey, jude'"hey, jude"
{  
    "mwdata": ["hey, jude"],
    "mwsize": [1,9],
    "mwtype": "char"
}

MATLAB 数据:多维字符数组JSON 大表示法
['boston';...
 '123456']
{
    "mwdata": ["b1o2s3t4o5n6"],
    "mwsize": [2,6],
    "mwtype": "char"
}

逻辑型

  • mwdata 属性必须仅包含 JSON truefalse 布尔值。对于多维 logical 数据,按列主顺序表示值。

  • mwtype 属性必须具有 logical 的值。

  • 在小写表示法中,您必须使用嵌套的 JSON 数组来表示多维 logical 数组。

logical 的 JSON 表示

MATLAB 数据类型JSON 小表示法JSON 大表示法
logicaltrue | false
{
   "mwtype": "logical",
   "mwsize": [1,1],
   "mwdata": [true | false]
}

MATLAB 数据:标量 logicalJSON 小表示法JSON 大表示法
logical(1)truetrue
{
    "mwdata": [true],
    "mwsize": [1,1],
    "mwtype": "logical"
}
logical(0)falsefalse
{
    "mwdata": [false],
    "mwsize": [1,1],
    "mwtype": "logical"
}

MATLAB 数据:多维 logical 数组JSON 小表示法JSON 大表示法
[true,false;...
 true,false;...
 true,false]
[[[true,false],[true,false],[true,false]]]
{
    "mwdata": [true,true,true,false,false,false],
    "mwsize": [3,2],
    "mwtype": "logical"
}

元胞数组

  • mwdata 属性必须是 JSON array,其中包含 JSON 表示形式的元胞值。

  • mwtype 属性必须具有 cell 的值。

  • 您不能使用小写符号来表示 cell 数组。

    MATLAB 数据类型JSON 大表示法
    cell
    {
        "mwdata": [<cell data>],
        "mwsize": [<cell dimensions>],
        "mwtype": "cell"
    }
    

  • 尽管您必须仅使用大符号表示元胞数组,但如果 cell 元素的数据类型支持小符号表示法,则可以在 JSON 中编码 cell 数组时以小符号表示该元素。

    下表显示了一个示例。

    MATLAB 数据:cell 数组JSON 大格式,其中包含一些小格式的 cell 元素JSON 大号表示法,所有 cell 元素均采用大号表示法
    {'Primes',[10 23 199],{false,true,'maybe'}}
    {
        "mwdata": ["Primes",
            [[10, 23, 199]],
            {
                "mwdata": [false, true, "maybe"],
                "mwsize": [1, 3],
                "mwtype": "cell"
            }
        ],
        "mwsize": [1, 3],
        "mwtype": "cell"
    }
    {
        "mwdata": [{
            "mwdata": ["Primes"],
            "mwsize": [1, 6],
            "mwtype": "char"
        },{
            "mwdata": [10, 23, 199],
            "mwsize": [1, 3],
            "mwtype": "double"
        },{
            "mwdata": [{
                "mwdata": [false],
                "mwsize": [1, 1],
                "mwtype": "logical"
            },{
            "mwdata": [true],
            "mwsize": [1, 1],
            "mwtype": "logical"
        },{
            "mwdata": ["maybe"],
            "mwsize": [1, 5],
            "mwtype": "char"
        }],
        "mwsize": [1, 3],
        "mwtype": "cell"
        }],
        "mwsize": [1, 3],
        "mwtype": "cell"
    }
  • 有关 MATLAB cell 数据类型的更多信息,请参阅 cell (MATLAB)

结构体数组

  • mwdata 属性必须是包含名称-值对的 JSON 对象,其中名称与 struct 中的字段匹配,而值是表示字段中数据的 JSON 数组。

  • mwtype 属性必须具有 struct 的值。

  • 尽管您必须使用 JSON 大表示法来表示多维 struct 数组,但如果 struct 值的数据类型支持小表示法,则可以在 JSON 中编码 struct 时以小表示法表示该值。

  • 您只能用小写符号表示标量 struct

    struct 数组的 JSON 表示

    MATLAB 数据类型JSON 小符号(仅对标量 struct 有效)JSON 大表示法
    structJSON 对象
    {       
        "mwdata": {<struct data>}
        "mwsize": [<struct dimensions>],
        "mwtype": "struct"
    }
    

  • MATLAB 数据:标量结构数组JSON 小表示法JSON 大表示法
    struct('name','John Smith','age',15)
    { "name" : "John Smith", "age" : 15 }
    {
        "mwdata": {
                "age": [{
    	            "mwdata": [15],
    		     "mwsize": [1, 1],
    	            "mwtype": "double"
    		    }],
                "name": [{
                       "mwdata": ["John Smith"],
    		      "mwsize": [1, 10],
    		      "mwtype": "char"
                      }]
        },
        "mwsize": [1, 1],
        "mwtype": "struct"
    }

  • 尽管您可以用小表示法表示 1×1 的 struct 数组,但是如果 struct 值的数据类型不支持小表示法,则在 JSON 中编码 struct 时必须用大表示法表示该值。

    MATLAB 数据:1×1 结构体数组JSON 小写符号,其中有一些 struct 值采用大写符号JSON 大写符号,所有 struct 值均采用大写符号表示
    struct('Name',{{'Casper','Ghost'}},... 
        'Age',{[14,17,18]},... 
        'Date', {736676})
    {
        "Age": [[14, 17, 18]],
        "Date": 736676,
        "Name": {
            "mwdata": ["Casper", "Ghost"],
            "mwsize": [1, 2],
            "mwtype": "cell"
        }
    }
    {
        "mwdata": {
            "Age": [{
                "mwdata": [14, 17, 18],
                "mwsize": [1, 3],
                "mwtype": "double"
            }],
            "Date": [{
                "mwdata": [736676],
                "mwsize": [1, 1],
                "mwtype": "double"
            }],
            "Name": [{
                "mwdata": [{
                    "mwdata": ["Casper"],
                    "mwsize": [1, 6],
                    "mwtype": "char"
                }, {
                    "mwdata": ["Ghost"],
                    "mwsize": [1, 5],
                    "mwtype": "char"
                }],
                "mwsize": [1, 2],
                "mwtype": "cell"
            }]
        },
        "mwsize": [1, 1],
        "mwtype": "struct"
    } 

  • 尽管您必须使用 JSON 大表示法来表示多维 struct 数组,但如果 struct 值的数据类型支持小表示法,则可以在 JSON 中编码 struct 时以小表示法表示该值。

    MATLAB 数据:多维结构体数组JSON 大写符号,其中有一些 struct 值采用小写符号JSON 大写符号,所有 struct 值均采用大写符号表示
    struct( 'Name',{'Casper','Ghost';... 
                    'Genie' ,'Wolf'},...
            'Ages',{14,17;...
                    20,23} )
    {
        "mwdata":{
            "Ages":[14,20,17,23],
            "Name":["Casper","Genie","Ghost","Wolf"]
        },
        "mwsize":[2,2],
        "mwtype":"struct"
    }
    {
        "mwdata":{
            "Ages":[{
                "mwdata":[14],
                "mwsize":[1,1],
                "mwtype":"double"
            },{
                "mwdata":[20],
                "mwsize":[1,1],
                "mwtype":"double"
            },{
                "mwdata":[17],
                "mwsize":[1,1],
                "mwtype":"double"
            },{
                "mwdata":[23],
                "mwsize":[1,1],
                "mwtype":"double"
            }],
            "Name":[{
                "mwdata":["Casper"],
                "mwsize":[1,6],    
                "mwtype":"char"
            },{
                "mwdata":["Genie"],
                "mwsize":[1,5],
                "mwtype":"char"
            },{
                "mwdata":["Ghost"],
                "mwsize":[1,5],
                "mwtype":"char"
            },{
                "mwdata":["Wolf"],
                "mwsize":[1,4],
                "mwtype":"char"
            }]
        },
        "mwsize":[2,2],
        "mwtype":"struct"
    }

  • 有关 MATLAB struct 数据类型的更多信息,请参阅 struct (MATLAB)

字符串数组

  • mwdata 属性必须是包含按列主顺序排列的字符串的 JSON 数组。

  • mwtype 属性必须具有 string 的值。

  • 您不能使用小型 JSON 符号表示 string 数组。

    string 数组的 JSON 表示

    MATLAB 数据类型JSON 大表示法
    string
    {
        "mwdata": [JSON string],
        "mwsize": [<string dimensions>],
        "mwtype": "string"
    }
    

    MATLAB 数据:标量、一维、多维和 missing (MATLAB) string 数组

    JSON 大表示法
    "abc"
    {
        "mwdata": ["abc"],
        "mwsize": [1, 1],
        "mwtype": "string"
    }
    ["abc"]
    {
        "mwdata": ["abc"],
        "mwsize": [1, 1],
        "mwtype": "string"
    }
    ["abc" "de"]
    {
        "mwdata": ["abc", "de"],
        "mwsize": [1, 2],
        "mwtype": "string"
    }
    ["abc" "de"; "fg" "hi"]
    {
        "mwdata": ["abc", "fg", "de", "hi"],
        "mwsize": [2, 2],
        "mwtype": "string"  
    }
    
    string(missing)
    {
        "mwdata": [{"mwdata": "missing"}],
        "mwsize": [1, 1],
        "mwtype": "string"
    }

  • 有关 MATLAB string 数据类型的更多信息,请参阅 string, " " (MATLAB)

枚举

  • mwdata 属性必须是一个表示枚举成员的字符串 JSON 数组。

  • 必须将 mwtype 属性设置为数组中枚举的类。

  • 您无法使用小型 JSON 符号来表示 enumeration

    enumeration 的 JSON 表示

    MATLAB 数据类型JSON 大表示法
    enumeration
    {  
        "mwdata": [JSON string],
        "mwsize": [<enumeration dimensions>],
        "mwtype": "<class name of enumeration>"
    }

    下表显示了 enumeration 的 JSON 表示示例。

    使用以下枚举作为示例。有关详细信息,请参阅定义枚举类 (MATLAB)

    classdef Colors
       enumeration
          Black Blue Red
       end
    end

    MATLAB 数据:枚举类的对象JSON 大表示法
    b = Colors.Black
    {
        "mwdata": ["Black"],
        "mwsize": [1, 1],
        "mwtype": "Colors"
    }
    b = [Colors.Black Colors.Blue]
    {
        "mwdata": ["Black", "Blue"],
        "mwsize": [1, 2],
        "mwtype": "Colors"
    }
  • 有关 MATLAB enumeration 数据类型的更多信息,请参阅 enumeration (MATLAB)

日期时间数组

  • mwdata 属性必须是一个 JSON 对象,其中包含 TimeStamp 的名称-值对以及可选的 LowOrderTimeStamp 的名称-值对。TimeStampLowOrderTimeStamp 的值是 double 数据类型的 JSON 表示。

    • TimeStamp 属性值表示自 1970 年 1 月 1 日 00:00:00 UTC(协调世界时)以来经过的 POSIX 时间(以毫秒为单位)。

    • LowOrderTimeStamp 属性值代表时间戳中的额外分辨率。使用此属性可以保持超过毫秒的精度。

    • 尽管您必须仅使用大表示法来表示 datetime 数组,但由于 TimeStampLowOrderTimeStamp 表示支持小表示法的 double 数据类型的值,因此在 JSON 中编码 TimeStamp 数组时,您可以使用小表示法来表示 LowOrderTimeStampdatetime

  • mwmetadata 属性必须是包含 TimeZoneFormat 的名称-值对的 JSON 对象。TimeZoneFormat 的值是 char 数据类型的 JSON 表示。

    • TimeZoneFormat 属性的值包含以原始显示格式重新创建时区为 MATLAB 的 datetime 值所需的元数据。此元数据是必需的,因为 TimeStampLowOrderTimeStamp 数组中包含的数值是根据 UTC 计算的。

    • 您可以为 TimeZoneFormat NaT 数组值指定 Infdatetime 属性。

    • 尽管您必须仅使用大表示法来表示 datetime 数组,但由于 TimeZoneFormat 表示支持小表示法的 char 数据类型的值,因此在 JSON 中编码 TimeZone 数组时,您可以使用小表示法来表示 Formatdatetime

    • TimeZone 的值可以为空。

    • Format 的默认值取决于您的系统区域设置。有关详细信息,请参阅默认 datetime 格式 (MATLAB)

  • mwtype 属性必须具有 datetime 的值。

  • 您不能使用小型 JSON 符号表示 datetime 数组。

    datetime 数组的 JSON 表示

    MATLAB 数据类型JSON 大表示法
    datetime
    {  
       "mwdata": {
                    "LowOrderTimeStamp": <JSON number>
                    "TimeStamp": <JSON number>
                 },
        "mwmetadata": {
    		"TimeZone": <JSON string>,
    		"Format": <JSON string>	
        },
        "mwsize": [<datetime array dimensions>],
        "mwtype": "datetime"
    }

    MATLAB 数据:标量 datetime 数组JSON 大写表示法,小写表示法为 mwdatamwmetadataJSON 大写符号,其中 mwdatamwmetadata 为大写符号
    datetime(2015, 3, 24);
    {
        "mwdata": {
            "TimeStamp": 1.4271552E+12
        },
        "mwmetadata": {
            "Format": "dd-MMM-uuuu",
            "TimeZone": ""
        },
        "mwsize": [1, 1],
        "mwtype": "datetime"
    }
    {
        "mwdata": {
            "TimeStamp": {
                "mwdata": [1.4271552E+12],
                "mwsize": [1, 1],
                "mwtype": "double"
            }
        },
        "mwmetadata": {
            "Format": {
                "mwdata": ["dd-MMM-uuuu"],
                "mwsize": [1, 11],
                "mwtype": "char"
            },
            "TimeZone": {
                "mwdata": [""],
                "mwsize": [0, 0],
                "mwtype": "char"
            }
        },
        "mwsize": [1, 1],
        "mwtype": "datetime"
    }

    下表显示了 datetime 行向量的 JSON 表示。由于 LowOrderTimeStampTimeStamp 包含 double 值,因此在以小写形式表示 LowOrderTimeStampTimeStamp 的多维(N-by-1 除外)数组时,需要使用嵌套 JSON 数组。

    MATLAB 数据:datetime 行向量JSON 大写表示法,小写表示法为 mwdatamwmetadataJSON 大写符号,其中 mwdatamwmetadata 为大写符号
    datetime(2018,1,8,10,... 
    11,12,(1:5)+(1:5)*1e-6,...
    'TimeZone','local');
    {
        "mwdata": {
            "LowOrderTimeStamp": [[9.9999999991773336E-7,
                1.9999999998354667E-6,
                2.9999999999752447E-6,
                3.9999999996709334E-6,
                4.9999999998107114E-6]],
            "TimeStamp": [[1.515424272001E+12,
                1.515424272002E+12,
                1.515424272003E+12,
                1.515424272004E+12,
                1.515424272005E+12]],
        },
        "mwmetadata": {
            "Format":"dd-MMM-uuuu HH:mm:ss",
            "TimeZone": "America\/New_York",
        },
        "mwsize": [1, 5],
        "mwtype": "datetime"
    }
    
    {
        "mwdata": {
            "LowOrderTimeStamp": {
                "mwdata": [9.9999999991773336E-7, 
                    1.9999999998354667E-6, 
                    2.9999999999752447E-6, 
                    3.9999999996709334E-6, 
                    4.9999999998107114E-6],
                "mwsize": [1, 5],
                "mwtype": "double"
            },
            "TimeStamp": {
                "mwdata": [1.515424272001E+12,
                    1.515424272002E+12, 
                    1.515424272003E+12, 
                    1.515424272004E+12, 
                    1.515424272005E+12],
                "mwsize": [1, 5],
                "mwtype": "double"
                }
            },
            "mwmetadata": {
                "Format": {
                    "mwdata": ["dd-MMM-uuuu HH:mm:ss"],
                    "mwsize": [1, 20],
                    "mwtype": "char"
                },
                "TimeZone": {
                    "mwdata": ["America\/New_York"],
                    "mwsize": [1, 16],
                    "mwtype": "char"
            }
        },    
        "mwsize": [1, 5],
        "mwtype": "datetime"
    }
    MATLAB 数据:datetime 列向量JSON 大写表示法,小写表示法为 mwdatamwmetadataJSON 大写符号,其中 mwdatamwmetadata 为大写符号
    datetime(2018,1,8,10,... 
    11,12,(1:5)+(1:5)*1e-6,...
    'TimeZone','local')';
    {
        "mwdata": {
            "LowOrderTimeStamp": [9.9999999991773336E-7,
                1.9999999998354667E-6,
                2.9999999999752447E-6,
                3.9999999996709334E-6,
                4.9999999998107114E-6],
            "TimeStamp": [1.515424272001E+12,
                1.515424272002E+12,
                1.515424272003E+12,
                1.515424272004E+12,
                1.515424272005E+12],
        },
        "mwmetadata": {
            "Format":"dd-MMM-uuuu HH:mm:ss",
            "TimeZone": "America\/New_York",
        },
        "mwsize": [5, 1],
        "mwtype": "datetime"
    }
    
    {
        "mwdata": {
            "LowOrderTimeStamp": {
                "mwdata": [9.9999999991773336E-7, 
                    1.9999999998354667E-6, 
                    2.9999999999752447E-6, 
                    3.9999999996709334E-6, 
                    4.9999999998107114E-6],
                "mwsize": [5, 1],
                "mwtype": "double"
            },
            "TimeStamp": {
                "mwdata": [1.515424272001E+12,
                    1.515424272002E+12, 
                    1.515424272003E+12, 
                    1.515424272004E+12, 
                    1.515424272005E+12],
                "mwsize": [5, 1],
                "mwtype": "double"
                }
            },
            "mwmetadata": {
                "Format": {
                    "mwdata": ["dd-MMM-uuuu HH:mm:ss"],
                    "mwsize": [1, 20],
                    "mwtype": "char"
                },
                "TimeZone": {
                    "mwdata": ["America\/New_York"],
                    "mwsize": [1, 16],
                    "mwtype": "char"
            }
        },    
        "mwsize": [5, 1],
        "mwtype": "datetime"
    }

    MATLAB 数据:NaTInf datetime 数组

    JSON 大写表示法,小写表示法为 mwdatamwmetadataJSON 大写符号,其中 mwdatamwmetadata 为大写符号
    NaT
    {
        "mwdata": {
            "TimeStamp": {
                "mwdata": "NaN"
    	  }
    	},
        "mwmetadata": {
            "Format": "dd-MMM-uuuu HH:mm:ss",
            "TimeZone": ""
        },
        "mwsize": [1, 1],
        "mwtype": "datetime"
    }
    {
        "mwdata": {
            "TimeStamp": {
                "mwdata": ["NaN"],
                    "mwsize": [1, 1],
                    "mwtype": "double"
            }
        },
        "mwmetadata": {
            "Format": {
                "mwdata": ["dd-MMM-uuuu HH:mm:ss"],
                "mwsize": [1, 20],
                "mwtype": "char"
            },
            "TimeZone": {
                "mwdata": [""],
                "mwsize": [0, 0],
                "mwtype": "char"
            }
        },
        "mwsize": [1, 1],
        "mwtype": "datetime"
    }
    datetime(inf,inf,inf)
    {
    	"mwdata": {
    		"TimeStamp": {
    			"mwdata": "Inf"
    		}
    	},
    	"mwmetadata": {
    		"Format": "dd-MMM-uuuu HH:mm:ss",
    		"TimeZone": ""
    	},
    	"mwsize": [1, 1],
    	"mwtype": "datetime"
    }
    {
        "mwdata": {
            "TimeStamp": {
                "mwdata": ["Inf"],
                "mwsize": [1, 1],
                "mwtype": "double"
                }
            },
            "mwmetadata": {
                "Format": {
                    "mwdata": ["dd-MMM-uuuu HH:mm:ss"],
                    "mwsize": [1, 20],
                    "mwtype": "char"
            },
            "TimeZone": {
                "mwdata": [""],
                "mwsize": [0, 0],
                "mwtype": "char"
            }
        },
        "mwsize": [1, 1],
        "mwtype": "datetime"
    }
  • 有关 MATLAB datetime 数据类型的更多信息,请参阅 datetime (MATLAB)

空数组:[]

  • 空数组 [] 不能是 struct 类型。

MATLAB 数据:空数组JSON 小表示法JSON 大表示法
[]
[]
{
   "mwdata": [],
   "mwsize": [0,0],
   "mwtype": "double"  |  "single" 
             "int8"    |  "uint8"  | "int16"  | "uint16"
             "int32"   |  "uint32" | "int64"  | "uint64"
             "logical" |  "char"   | "cell"   | "string"
             "<class name of enumeration>"     
}

另请参阅

主题

外部网站