2015-02-25 3 views
0

Я получаю ответ службы как это.Как удалить определенные данные из ответа JSON

Temp([ 
    { 
    XXX: "2", 
    YYY: "3", 
    ZZZ: "4" 
    }, 
    { 
    XXX: "5", 
    YYY: "6", 
    ZZZ: "7" 
    }, 
    { 
    XXX: "1", 
    YYY: "2", 
    ZZZ: "3" 
    } 
]); 

Я хочу удалить temp для этого ответа MSN в javascript, как показано ниже.

[ 
    { 
    XXX: "2", 
    YYY: "3", 
    ZZZ: "4" 
    }, 
    { 
    XXX: "5", 
    YYY: "6", 
    ZZZ: "7" 
    }, 
    { 
    XXX: "1", 
    YYY: "2", 
    ZZZ: "3" 
    } 
] 
+0

вы можете использовать зиЬзЬги функции http://www.w3schools.com/jsref/jsref_substr.asp – Tune389

+0

ли это полный ответ? – shahmanthan9

+1

да @ shahmanthan9, я получаю подобный ответ. Мне нужен только массив. –

ответ

0

Допустим, что источник, из которого вы получите ваш JSONP реакция безопасна и дает правильный ВСЕГДА ответ JSONP.

Основном это означает, что вы получите ответ вроде:

functionName(jsonString) 

Как и в вашем примере:

Temp([{"XXX":"2","YYY":"3","ZZZ":"4"},{"XXX":"5","YYY":"6","ZZZ":"7"},{"XXX":"1","YYY":"2","ZZZ":"3"}]) 

Extract JSON - метод 1

Если вы только нужно объект от ответа функции, вы можете сделать что-то вроде этого:

var jsonObject = null; 
try 
{ 
    var response = 'Temp([{"XXX":"2","YYY":"3","ZZZ":"4"},{"XXX":"5","YYY":"6","ZZZ":"7"},{"XXX":"1","YYY":"2","ZZZ":"3"}])'; 
    var temp = response.split('('); 
    delete temp[0]; 
    temp = temp.join('(').split(')'); 
    delete temp[temp.length-1]; 
    temp = temp.join(')'); 
    temp = temp.substring(1, temp.length-1); 
    jsonObject = JSON.parse(temp); 
} 
catch(ex) 
{ 
} 
console.log(jsonObject); 

Extract JSON - метод 2 Использование этого метода позволяет фактически иметь несколько json-объектов в качестве функциональных параметров. Предположим, что вы не знаете, какой метод имя JSONP результат предназначен для вызова.

Таким образом, мы можем сделать что-то вроде:

var response = 'Temp([{"XXX":"2","YYY":"3","ZZZ":"4"},{"XXX":"5","YYY":"6","ZZZ":"7"},{"XXX":"1","YYY":"2","ZZZ":"3"}])'; 
try{ 
    var fnName = response.split('(')[0]; 
    var fn = new Function(fnName, response); 
    var jsonObject = null; 
fn(function(json){ 
    jsonObject = json; 
}); 
    console.log(jsonObject); 
} 
catch(ex){ 
    console.log(ex.message); 
} 
0

Во-первых, я не думаю, что это ответ JSON. Правильный ответ JSON будет таким.

{ 
"temp": [ 
    { 
     "XXX": "2", 
     "YYY": "3", 
     "ZZZ": "4" 
    }, 
    { 
     "XXX": "5", 
     "YYY": "6", 
     "ZZZ": "7" 
    }, 
    { 
     "XXX": "1", 
     "YYY": "2", 
     "ZZZ": "3" 
    } 
    ] 
} 

Затем вы можете извлечь массив, используя.

response["temp"] 
+0

возвращает ответ .js, но формат такой же, как и я. –

+0

Тогда я предполагаю, что у вас есть функция Java-скрипта. Если вы все еще хотите извлечь массив, я бы рекомендовал функцию slice(). –

Смежные вопросы