如何访问鉴于这种JSON响应此JSON响应

问题描述:

的数据:如何访问鉴于这种JSON响应此JSON响应

[ 
    { 
     "diccioDatosForm": { 
      "errorMessage": "Verifique los datos invalidos ingresados...", 
      "encargadoLocalidad": "Ingrese un valor", 
      "responseStatus": "ERR", 
      "segundoNombre": "OK", 
      "encargadoProvincia": "Ingrese un valor" 
     } 
    }, 
    { 
     "listaEncargados": [] 
    } 
] 

我需要访问密钥“diccioDatosForm”的元素。 当我打印JSON与警报(alert(responseData)),我得到:

[object Object],[object Object] 

,并试图做到这一点时,我没有得到任何东西:

alert(responseData.diccioDatosForm.errorMessage) 
+0

你用什么方法得到这个响应? – fengd 2012-07-18 02:51:03

像这样:

responseData[0].diccioDatosForm.errorMessage 

responseData本身是一个数组包含2个元素

这是因为你正在提醒正在返回的数组。 要访问所需的字段,你应该做的:

responseData[0].diccioDatosForm.diccioDatosForm 

我知道什么,我会说是不是你的问题的一部分,但我建议你检查你的JSON结构,因为它的怪有一个数组两种不同的东西。

我会用这样的:

{ 
    "configs": { 
     "segundoNombre": "OK", 
     "encargadoProvincia": "Ingrese un valor", 
     "encargadoLocalidad": "Ingrese un valor" 
    }, 
    "error": { 
     "message": "Verifique los datos invalidos ingresados..." 
    }, 
    "itens": [] // "encargados" list here 
} 

这样做,你将有标准通过YOUT应用程序中使用。接取邮件错误你可以这样做:

responseData.error.message 

它看起来像你想找到一个参数,它是在一个对象,它在你的JSON数组的第一个元素的值。在纯Javascript中,这意味着:

var data = [{"diccioDatosForm": {"errorMessage": /* ... */] 

// grab diccioDatosForm from first array element: 
var diccioDatosForm = data[0].diccioDatosForm; 

您的responseData对象是一个包含对象的数组。因此,您必须在引用内部对象时使用索引。

responseData[0].diccioDatosForm.errorMessage