[英]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.