¿Cómo obtener la clave y el valor json en javascript?

81

Estoy devolviendo un json como se muestra a continuación

{"name": "", "skills": "", "jobtitel": "Entwickler", "res_linkedin": "GwebSearch"}

Estoy tratando de obtener la clave y el valor de cada elemento:

..
}).done(function(data){
    alert(data['jobtitel']);
});

Me estoy poniendo undefineden alerta. ¿POR QUÉ? Lo intenté data.jobtitel, lo intenté con el bucle pero no tuve éxito.

donante
fuente
primero debe convertir ese json en una matriz, luego debe probar data.jobtitel
swan
JSON es una cadena y desea acceder allí, entonces debe tener que convertir ...
cisne
@swan, $ .parseJSON no siempre está disponible en todos los navegadores ... ¿qué hacer?
donante
1
si agrega jquery, $ .parseJSON funcionará ... de lo contrario, debe usar el convertidor JSON de JavaScript puro JSON.eval (jsonstring)
swan
@swan, ¡perfecto! ahora está funcionando
donante

Respuestas:

147
//By using jquery json parser    
var obj = $.parseJSON('{"name": "", "skills": "", "jobtitel": "Entwickler", "res_linkedin": "GwebSearch"}');
alert(obj['jobtitel']);

//By using javasript json parser
var t = JSON.parse('{"name": "", "skills": "", "jobtitel": "Entwickler", "res_linkedin": "GwebSearch"}');
alert(t['jobtitel'])

Mira este jsfiddle

A partir de jQuery 3.0 , $ .parseJSON está obsoleto. Para analizar cadenas JSON, utilice el método JSON.parse nativo en su lugar.

Fuente: http://api.jquery.com/jquery.parsejson/

cisne
fuente
2
Esto no está suficientemente documentado. La capacidad de usar json ['KeyAsString']. Realmente grandioso. Gracias.
Android334
¿Cómo resolvería Entwickler a jobtitel? ¿Hay algo nativo o tengo que escribir mi propio código?
dGRAMOP
22

has analizado esa Jsoncadena usandoJSON.parse()

..
}).done(function(data){
    obj = JSON.parse(data);
    alert(obj.jobtitel);
});
NaYaN
fuente
Simplificado: JSON.parse (data) .jobtitle
Jonas
12
var data = {"name": "", "skills": "", "jobtitel": "Entwickler", "res_linkedin": "GwebSearch"}

var parsedData = JSON.parse(data);
alert(parsedData.name);
alert(parsedData.skills);
alert(parsedData.jobtitel);
alert(parsedData.res_linkedin);
onihime
fuente
1
Así es como se hace en javascript.
Ishara Amarasekera
4

http://jsfiddle.net/v8aWF/

Resolvió un violín. Compruébalo

(function() {
    var oJson = {
        "name": "", 
        "skills": "", 
        "jobtitle": "Entwickler", 
        "res_linkedin": "GwebSearch"
    }
    alert(oJson.jobtitle);
})();

fuente
2

Un enfoque simple en lugar de usar JSON.parse

 success: function(response){
     var resdata = response;
     alert(resdata['name']);
}
Ricky
fuente
1

Parece que datano contiene lo que crees que contiene, compruébalo.

let data={"name": "", "skills": "", "jobtitel": "Entwickler", "res_linkedin": "GwebSearch"};

console.log( data["jobtitel"] );
console.log( data.jobtitel );

Kamil Kiełczewski
fuente
0

Puede usar la siguiente solución para obtener una clave JSON y un valor en JavaScript:

var dt = JSON.stringify(data).replace('[', '').replace(']', '');
if (dt) {
  var result = jQuery.parseJSON(dt);
  var val = result.YOUR_OBJECT_NAME;
}
Monzur
fuente
1
Si bien este fragmento de código puede ser la solución, incluir una explicación realmente ayuda a mejorar la calidad de su publicación. Recuerde que está respondiendo la pregunta para los lectores en el futuro, y es posible que esas personas no conozcan los motivos de su sugerencia de código.
Narendra Jadhav
0

Por conseguir la llave

var a = {"a":"1","b":"2"};
var keys = []
for(var k in a){
  keys.push(k)
}

Por obtener valor.

var a = {"a":"1","b":"2"};
var values = []
for(var k in a){
  values.push(a[k]);
}
Chandan Kumar
fuente