1
使用MATLAB jsonencode
函数时,似乎很难将大小1的数组转换为正确的JSON格式,即[值]。例如,如果我这样做:使用带有长度为1的数组的jsonencode
jsonencode(struct('words', [string('hello'), string('bye')]))
那么这将产生:
{"words":["hello","bye"]}
这是正确的。然而,如果我做的:
jsonencode(struct('words', [string('hello')]))
然后它产生:
{"words":"hello"}
失去了方括号,它需要,因为它是在普通的数组。使用单元格而不是数组时,会发生同样的情况,但如果单元格不在结构内部,则使用单元格可以工作。
任何想法如何解决这个问题?
该问题与matlab在单个值和1x1矩阵之间没有区别的事实有关。 – m7913d
我想最简单的方法是在你的字符串的末尾添加一个垃圾/临时单词,以确保它有多个单词,迫使MATLAB使用方括号。然后在JSON中删除后处理中的垃圾单词。更困难的方法是读取单元格输出并在适当的位置用方括号重写;可能需要一个正则表达式。 – Adriaan
该结构会自动转换为JSON作为http请求的一部分,因此我必须更改代码以在客户端执行JSON转换,并以字符串而不是结构形式传递数据。所以我想这可能会很麻烦。 – Simmovation