处理json jquery ajax响应2个数组

时间:2013-08-11 04:44:57

标签: php ajax json

我在ajax,javascript等方面并不擅长。

我回复了我的PHP文件2 JSON数组:

{key":"R\/EPspiig3jNffjjE6YWTsB+rsdlCjqnm1LExC\/vJXE=","nonce":"1aab51c5d8b23b7c110ae3f2a2d440bf0797750c85bd1602e8d57c357f34dab9"}

{"error":1,"message":"\u05d4\u05d0\u05d9\u05de\u05d9\u05d9\u05dc \u05e9\u05d4\u05d6\u05e0\u05ea \u05e9\u05d2\u05d5\u05d9 \u05d0\u05d5 \u05dc\u05d0 \u05ea\u05e7\u05d9\u05df \u05e0\u05e1\u05d4 \u05e9\u05d5\u05d1 ,\u05d0\u05e0\u05d0 \u05d4\u05db\u05e0\u05e1 \u05e1\u05d9\u05e1\u05de\u05d0"}

在我的ajax中我有这个:

成功:功能(数据)       {

           obj = JSON && JSON.parse(data) || $.parseJSON(data);

           if(data[0].login == true) 
            {  
                window.location = "index.php";

            }
            else
              {
             $("#siimage").trigger("click");
             $("form input:submit").effect("shake", {times:2}, 100);
             $("#errorMessage").html(data[0].message); 
             $("#nonce").val(data[1].nonce);
             $("#key").val(data[1].key);
              }




         if(data.cblocked == true)
         {
         $("#email").prop('disabled', true);
         $("#password").prop('disabled', true);
         $('input[type="submit"]').attr('disabled','disabled');
         document.getElementById("Submit").value = 'נעול';

         }
          if(data.csrf == true)
         {
         $("#email").prop('disabled', true);
         $("#password").prop('disabled', true);
         $('input[type="submit"]').attr('disabled','disabled');
         document.getElementById("Submit").value = 'נעול';

         }

这个问题:

$("#nonce").val(data[1].nonce);
             $("#key").val(data[1].key);

我是如何使用它的,因为我有2个数组,无论如何我使用parse并以这种方式处理2个数组?像data [0] = array 1和data [1] = array 2?

1 个答案:

答案 0 :(得分:0)

首先,检查Ajax请求对象的.responseText属性(HttpRequestObject),如下所示:

alert(request.responseText)

如果看起来正确,你就有两个阵列混合在一起了。您需要使用.split()和一些字符模式(例如我使用:::)拆分它们:

twoarrays = request.responseText.split(":::");

现在,您在[0]中的地址[1]twoarrays处有两个JSON格式的字符串。使用.parse()将每个转换回数组。

如果你不明白我在说什么,那你就该做一些研究了。这不是一件棘手的事情,你只需要花些时间把它弄到头脑中。


(旧回答)

如果您指的是 Javascript 方面,那么

yourstring.parse()

应该可以正常工作(Parse JSON in JavaScript?)。

您可能需要使用换行符.split()回复:

twoarrays = request.responseText.split("\n");
array1 = twoarrays[0].parse();
array2 = twoarrays[1].parse();

如果您指的是 PHP 方面,那么您可以将json_decode($yourstring, true) parses the JSON用于关联数组(具有名称而不是地址数字的数组)。

仅供参考,json_encode($yourarray)将采取相反的行动。