从JSON中删除String

时间:2014-03-13 11:34:51

标签: javascript json rest dojo dijit.form

我想用数据存储(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"}
];

感谢您的回答和问候 本

3 个答案:

答案 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"}]"