¿Cómo puedo obtener el valor de este objeto?

var descipt = "{'type':'" + $('#medi-type option:selected').val() +"',"+
        "'weight':" + $('#weight').val() +","+
        "'weight-type':'" + $('#weight-type option:selected').val() +"',"+
        "'dose':'" + $('#medicine-dose').val() +"',"+
        "'dose-type':'" + $('#dose-type option:selected').val() +"',"+
        "'day-time':'" + morning +"',"+
        "'noon-time':'" + noon +"',"+
        "'night-time':'" + night +"',"+
        "'after':'" + after +"',"+
        "'before':'" + before +"'}";

alert(descipt.weight);

Cómo obtener peso del objeto.

3
Naveen Roy 31 oct. 2017 a las 15:49

3 respuestas

La mejor respuesta

Eso no es un objeto JSON, es una cadena. Primero debe analizarlo en un objeto JSON con

var desciptObject = JSON.parse(descipt);

Y luego puedes leer el peso con

weight = desciptObject.weight;
8
Luca De Nardi 31 oct. 2017 a las 12:50

Utilice JSON.parse

var jsonObj = JSON.parse(descipt);
var weight = jsonObj.weight;
var weighttype = jsonObj["weight-type"]; // jsonObj.weight-type  will throw error
1
Yogesh Chuahan 31 oct. 2017 a las 12:54

Primero necesitas convertir eso en un objeto JavaScript con:

var obj = JSON.parse(descipt);

Y después de eso usa así:

alert(obj.weight);

De hecho, esta es una cadena y no puede acceder como un objeto a los nodos.

1
Majid Abbasi 31 oct. 2017 a las 12:52