使用长度为1的jsonencode数组

时间:2017-09-13 13:17:02

标签: arrays json matlab

使用MATLAB jsonencode函数时,将1号数组转换为正确的JSON格式即[value]似乎非常困难。例如,如果我这样做:

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

然后产生:

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

这是正确的。但是,如果我这样做:

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

然后它产生:

{"words":"hello"}

丢失它所需的方括号,因为它通常是一个数组。使用单元格而不是数组时会发生同样的情况,尽管如果单元格不在结构体内,则使用单元格会起作用。

知道如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

看起来这可以通过使用单元而不是数组来解决,然后不创建结构内联。像

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

输出:

{"words":["hello"]}

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