我想用数据存储(JsonRest)提供dijit.form.Select(Dojo Select-Box)。问题是,JSON-Parser只接受这种格式的JSON:
[
{id:"1", name:"One1"},
{id:"2", name:"Two1"}
];
我们要调用的Web应用程序的REST-API提供以下JSON:
{
"data": [
{id:"1", name:"One1"},
{id:"2", name:"Two1"}
],
"total": 2,
"start": 0,
"sort": "name",
"order": "asc",
"size": 2
};
这就是选择框不显示任何数据的原因。因此,我们需要删除{"数据":部分和JSON消息的最后部分,将其传递给Dojo选择框。
数据存储在JsonRest对象中。所以问题是我们如何以一种简单的方式删除JSON的第一部分和最后一部分,这里只给出了Select-Box:
[
{id:"1", name:"One1"},
{id:"2", name:"Two1"}
];
感谢您的回答和问候 本
答案 0 :(得分:3)
从dojo选择的数据创建一个新的Array变量似乎最简单......
var restapidataObj = {
"data": [
{id:"1", name:"One1"},
{id:"2", name:"Two1"}
],
"total": 2,
"start": 0,
"sort": "name",
"order": "asc",
"size": 2
};
var dojoSelectArray = restapidataObj.data;
现在将dojoSelectArray
传递给道场
答案 1 :(得分:1)
将结果存储在对象中并访问该对象的data属性。
var result = {
"data": [
{id:"1", name:"One1"},
{id:"2", name:"Two1"}
],
"total": 2,
"start": 0,
"sort": "name",
"order": "asc",
"size": 2
};
result.data
会为您提供data
数组。
检查MDN
上的javascript对象文档答案 2 :(得分:0)
resultFromServer =
{
"data": [
{id:"1", name:"One1"},
{id:"2", name:"Two1"}
],
"total": 2,
"start": 0,
"sort": "name",
"order": "asc",
"size": 2
};
这转换为object(使用此incase resultFromServer是一个字符串)
var Output = eval('('+ resultFromServer+')')
这给出了你的输出
JSON.stringify(Output.data)
给出字符串
"[{"id":"1","name":"One1"},{"id":"2","name":"Two1"}]"