使用MATLAB jsonencode
函数时,将1号数组转换为正确的JSON格式即[value]似乎非常困难。例如,如果我这样做:
jsonencode(struct('words', [string('hello'), string('bye')]))
然后产生:
{"words":["hello","bye"]}
这是正确的。但是,如果我这样做:
jsonencode(struct('words', [string('hello')]))
然后它产生:
{"words":"hello"}
丢失它所需的方括号,因为它通常是一个数组。使用单元格而不是数组时会发生同样的情况,尽管如果单元格不在结构体内,则使用单元格会起作用。
知道如何解决这个问题?
答案 0 :(得分:2)
看起来这可以通过使用单元而不是数组来解决,然后不创建结构内联。像
s.words = {'hello'};
jsonencode(s)
输出:
{"words":["hello"]}
我认为在内联创建时,matlab的单元格功能实际上是尝试创建多个结构而不是多个字符串。请注意,这仍然不适用于数组,因为matlab将大小为一的数组视为标量。