问题传递JSON长格式参数Matlab生产服务器

8 Ansichten(30天)的
泽伦
泽伦 我2018年1月18日
Bearbeitet: 泽伦我2018年1月19日
我用MATLAB生产服务器运行通过REST API函数。我有一个函数5输入参数。当我使用JSON传递参数小格式(例如5双)使用POST /同步方法然后函数返回我的结果很好。这是我的Python代码:
康涅狄格州= http.client.HTTPConnection (“serverURL: 9910”)
头= {“内容类型”:“application / json”}
身体= json.dumps ({“nargout”:1、“皇家”:【“运行”,输入]})
conn.request (“职位”,“optimFctExample /模式”、身体、头)
响应= conn.getresponse ()
如果
输入= [1、2、3、4、5)
然后它接受rhs刚刚好。然而,我想通过更复杂的比双参数,我明白我需要使用JSON大型格式。
我测试使用
输入= [{
“mwtype”:“替身”,
“mwsize”:[1],
“mwdata”:[1]
},{
“mwtype”:“替身”,
“mwsize”:[1],
“mwdata”:[2]
},{
“mwtype”:“替身”,
“mwsize”:[1],
“mwdata”:[3]
},{
“mwtype”:“替身”,
“mwsize”:[1],
“mwdata”:[4]
},{
“mwtype”:“替身”,
“mwsize”:[1],
“mwdata”:[5]
})
然后服务器将返回一个400错误的类型:
错误在解析请求:
(错)(工人:31)的预期特殊的漂浮物体内的数据,一个字符串
我做错了什么?这是我encaplustae JSON格式?如果我试图通过原来的长格式lh(我),那么它的作品,所以输入的问题不是叫本身,而是与rhs格式。谢谢你的帮助。

Antworten (3)

小次郎斋藤
小次郎斋藤 我2018年1月18日
Bearbeitet:小次郎斋藤 我2018年1月18日
而不是混合小型和大型JSON格式,请把大JSON的运行参数。下面的工作。
输入= [{
“mwtype”:“字符”,
“mwsize”:[1,3],
“mwdata”:【“运行”]
},{
“mwtype”:“替身”,
“mwsize”:[1],
“mwdata”:[1]
},{
“mwtype”:“替身”,
“mwsize”:[1],
“mwdata”:[2]
},{
“mwtype”:“替身”,
“mwsize”:[1],
“mwdata”:[3]
},{
“mwtype”:“替身”,
“mwsize”:[1],
“mwdata”:[4]
},{
“mwtype”:“替身”,
“mwsize”:[1],
“mwdata”:[5]
})
身体= json.dumps ({“nargout”:1、“皇家”:输入})

泽伦
泽伦 我2018年1月19日
Bearbeitet:泽伦 我2018年1月19日
谢谢你的建议,但是我得到这个错误:
许多输入参数。
我应该高兴。m fct的结构模型。它需要两个参数:
函数[输出]=模型(命令,输入)
命令是一个char类型(“运行”或“信息”)和MATLAB的输入是一个数组数据类型(双或字符)。从我调度模型的输入“运行”或“信息”命令的功能不同的词。因此需要两个rhs arguemnts那里。我想我需要在一个结构体类型的mwdata封装输入或细胞呢?

泽伦
泽伦 我2018年1月19日
Bearbeitet:泽伦 我2018年1月19日
我回答:这是工作:
命令= {“mwtype”:“字符”,
“mwsize”:[1,3],
“mwdata”:【“运行”]
}
输入= {“mwdata”:[1,
8日,
“图”,
5,
{“mwdata”2]:[3日,
“mwsize”:[1,2],
“mwtype”:“细胞”}
),
“mwsize”(1、5):,
“mwtype”:“细胞”}
身体= json.dumps ({“nargout”:1、“皇家”:[命令,输入]})
注意,输入必须封装在一个细胞数组或结构,然后利用MATLAB的m文件访问数据单元格数据访问,如输入{1},{2},{5}输入{1}等。
或者,您可以使用一个结构:
输入= {“mwdata”:{“价值”:[{“mwdata”:[3],“mwsize”:[1],“mwtype”:“双”},
{“mwdata”:[6],“mwsize”:[1],“mwtype”:“双”},
{“mwdata”:【“图”),
“mwsize”:[1,3],
“mwtype”:“字符”},
{“mwdata”:[5],“mwsize”:[1],“mwtype”:“双”},
{“mwdata”:[{“mwdata”:[3],
“mwsize”:[1],
“mwtype”:“双”},
{“mwdata”:[2],
“mwsize”:[1],
“mwtype”:“双”}),
“mwsize”:[1,2],
“mwtype”:“细胞”}},
“mwsize”(1、5):,
“mwtype”:“结构”}
然后你可以使用输入(1)访问数据。(5)值和输入。{1}例如价值。
这将是伟大的如果MATLAB促使服务器文档最好的例子。

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!

翻译的