简体   繁体   中英

Remove String from JSON

I want to feed a dijit.form.Select (Dojo Select-Box) with a Data-Store (JsonRest). The Problem is, that the JSON-Parser only accepts JSON in this format:

[
  {id:"1", name:"One1"},
  {id:"2", name:"Two1"}
];

The REST-API of the webapplication we want to call delivers the following JSON:

{
  "data": [
      {id:"1", name:"One1"},
      {id:"2", name:"Two1"}
],
    "total": 2,
    "start": 0,
    "sort": "name",
    "order": "asc",
     "size": 2
};

That is why the Select Box does not show any data. Therefore, we need to remove the {"data": part and the last part of the JSON message bevore passing it to the Dojo Select Box.

The Data is stored in a JsonRest Object. So the question is how we can remove the first and the last part of the JSON in a way that simply this here is given to the Select-Box:

[
  {id:"1", name:"One1"},
  {id:"2", name:"Two1"}
];

Thank you for your answers and best regards Ben

Create a new Array variable from the data for the dojo select seems simplest ...

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;

Now pass dojoSelectArray to dojo

Store the result in a object and access the data property of that object.

var result = {
  "data": [
  {id:"1", name:"One1"},
  {id:"2", name:"Two1"}
],
   "total": 2,
   "start": 0,
   "sort": "name",
   "order": "asc",
   "size": 2
};

result.data would give you the data array.

Check the javascript object documentation at MDN

resultFromServer =

     {
       "data": [
           {id:"1", name:"One1"},
           {id:"2", name:"Two1"}
     ],
         "total": 2,
         "start": 0,
         "sort": "name",
         "order": "asc",
          "size": 2
     };

this convert to object (Use this incase resultFromServer is a string)

    var Output = eval('('+ resultFromServer+')')

this gives your output

    JSON.stringify(Output.data)

gives the string

    "[{"id":"1","name":"One1"},{"id":"2","name":"Two1"}]"

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM