如何访问此json响应的数据

时间:2012-07-18 02:47:51

标签: javascript jquery json

鉴于此json的回应:

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

我需要访问密钥'diccioDatosForm'的元素。 当我用警告(alert(responseData))打印json时,我得到:

[object Object],[object Object]

我尝试这样做时没有得到任何东西:

alert(responseData.diccioDatosForm.errorMessage)

4 个答案:

答案 0 :(得分:5)

像这样:

responseData[0].diccioDatosForm.errorMessage

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

答案 1 :(得分:2)

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

responseData[0].diccioDatosForm.errorMessage

答案 2 :(得分:1)

这是因为您正在警告正在返回的数组。 要访问所需的字段,您应该:

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

答案 3 :(得分:1)

看起来您正在尝试查找对象中的参数值,该对象是JSON中数组的第一个元素。在普通的Javascript中,这意味着:

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

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