繁体   English   中英

使用长度为1的jsonencode数组

[英]Using jsonencode with length 1 array

使用MATLAB jsonencode函数时,很难将大小为1的数组转换为正确的JSON格式,即[value]。 例如,如果我这样做:

jsonencode(struct('words', [string('hello'), string('bye')]))

然后产生:

{"words":["hello","bye"]}

哪个是对的。 但是,如果我这样做:

jsonencode(struct('words', [string('hello')]))

然后产生:

{"words":"hello"}

失去了方括号,这是必需的,因为它通常是一个数组。 使用单元而不是数组时,也会发生相同的情况,尽管如果单元不在结构中也可以使用单元。

您知道如何解决此问题吗?

似乎可以通过使用单元格而不是数组来解决此问题,然后不创建内联结构。 喜欢

s.words = {'hello'};
jsonencode(s)

输出:

{"words":["hello"]}

我猜想当内联创建时,matlab的单元功能实际上是在尝试制作多个结构而不是多个字符串。 请注意,这仍然不适用于数组,因为matlab将大小为1的数组视为标量。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM