代码之家  ›  专栏  ›  技术社区  ›  Mike M. Lin

如何在JSON对象中为查询字符串形成数组?

  •  0
  • Mike M. Lin  · 技术社区  · 15 年前

    {"sodas[]": ["coke", "sprite", "fanta"]}
    

    查询字符串应该是这样的,所有键都完全相同吗( sodas%5B%5D )?

    sodas%5B%5D=coke&sodas%5B%5D=sprite&sodas%5B%5D=fanta
    

    或者查询字符串中是否应该有索引值( sodas%5B0%5D , sodas%5B1%5D 等)?

    sodas%5B0%5D=coke&sodas%5B1%5D=sprite&sodas%5B2%5D=fanta
    
    1 回复  |  直到 15 年前
        1
  •  1
  •   T.P.    15 年前

    第一句话没有方括号的“苏打水”键将工作。我不确定您使用的是哪种语言,但这里有一个HTML、jQuery和PHP的示例。

    HTML(文件:y.HTML)

    
    <!DOCTYPE html>
    <html>
    <head>
    <title>XYZ</title>
    <script
      type="text/javascript"
      src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
    </head>
    <body>
    <input type="button" id="send" value="Send">
    <hr noshade>
    <div id="output"></div>
    <script type="text/javascript">
    var $output = $('#output');
    $('#send').click(function(e){
      e.preventDefault();
      var $json = '{"sodas":["coke","pepsi","fanta"]}';
      $.ajax({url:"/so/y.php",type:"post",dataType:"html",data:'json='+escape($json),
        success:function(obj){
          $output.html(obj);
        }
      });
    });
    </script>
    </body>
    </html>
    

    json=%7B%22sodas%22%3A%5B%22coke%22%2C%22pepsi%22%2C%22fanta%22%5D%7D
    

    PHP(文件:y.PHP)

    
    <?php
    $json = json_decode(stripslashes($_POST['json']));
    var_dump($json);
    

    object(stdClass)#1 (1) { ["sodas"]=>  array(3) { [0]=>  string(4) "coke" [1]=>  string(5) "pepsi" [2]=>  string(5) "fanta" } }