Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript PHP字符串到json数组_Javascript_Php_Jquery_Json - Fatal编程技术网

Javascript PHP字符串到json数组

Javascript PHP字符串到json数组,javascript,php,jquery,json,Javascript,Php,Jquery,Json,因此,基本上我正在发出cURL请求并得到如下响应(var_dump): 我想在JS文件中访问它,如下所示: success: function (data) { alert(data.user_id); } var pack; var packs = data.purchase_packs; for (pack= 0; pack < packs.length; pack++) { console.log(packs[pack]); } 但我不知道如何正确地转换(?)它

因此,基本上我正在发出cURL请求并得到如下响应(var_dump):

我想在JS文件中访问它,如下所示:

success: function (data) {
    alert(data.user_id);
}
var pack;
var packs = data.purchase_packs;
for (pack= 0; pack < packs.length; pack++) {
    console.log(packs[pack]);
}
但我不知道如何正确地转换(?)它

然后我的下一步(问题)是,我是否可以为每个购买的包做一个for循环,这样我就可以为每个包创建一个按钮

可能是这样的:

success: function (data) {
    alert(data.user_id);
}
var pack;
var packs = data.purchase_packs;
for (pack= 0; pack < packs.length; pack++) {
    console.log(packs[pack]);
}
var包;
var packs=data.purchase\u packs;
对于(pack=0;pack
我试图理解你的“问题”

在js中:

$.post('/some/url',{query: 'somequery'},
function (data) {
    try {
        data = JSON.parse(data);
    } catch (e) {
        return false;
    }
    console.log(data);
});
在PHP中:

data = json_decode(rtrim($myJSONEncodedString, "\0"));
if (!empty($data->purchase_packs)
    foreach ($data->purchase_packs as $key => $value)
        var_dump($value);

我试图理解你的“问题”

在js中:

$.post('/some/url',{query: 'somequery'},
function (data) {
    try {
        data = JSON.parse(data);
    } catch (e) {
        return false;
    }
    console.log(data);
});
在PHP中:

data = json_decode(rtrim($myJSONEncodedString, "\0"));
if (!empty($data->purchase_packs)
    foreach ($data->purchase_packs as $key => $value)
        var_dump($value);

使用cURL接收响应后,只需在
标记之间回显json字符串

然后json字符串将如下所示:

<script>
var jsondata = {"user_id":1,"currency":"eur","purchase_packs":{"1":{"amount":500,"allowed_payment_methods":["ideal","paypal","visa","mc"]},"3":{"amount":1000,"allowed_payment_methods":["mc","ideal","paypal","visa"]},"6":{"amount":2500,"allowed_payment_methods":["mc","ideal","paypal"]},"8":{"amount":5000,"allowed_payment_methods":["ideal"]},"9":{"amount":10000,"allowed_payment_methods":["ideal"]}},"payment_methods":{"ideal":{"name":"ideal","allow_recurring":false},"paypal":{"name":"paypal","allow_recurring":false},"visa":{"name":"visa","allow_recurring":false},"mc":{"name":"mc","allow_recurring":false}}};
</script>

var jsondata={“用户id”:1,“货币”:“欧元”,“购买包装”:{“1”:{“金额”:500,“允许付款方式”:[“理想”、“贝宝”、“visa”、“mc”]},“3”:{“金额”:1000,“允许付款方式”:[“mc”、“理想”、“贝宝”、“visa”},“6”:{“金额”:2500,“允许付款方式”:[“mc”、“理想”、“贝宝”},“8”:{“金额”:5000,“允许付款方式”:[“理想”},“9”:{“金额”:10000,“允许的支付方式”:[“理想的”]},“支付方式”:{“理想的”{“名称”:“理想的”{“名称”:“允许重复发生的”:假的},“贝宝”:{“名称”:“贝宝”,“允许重复发生的”:假的},“visa”:{“名称”:“visa”,“允许重复发生的”:假的},“mc”:{“名称”:“mc”,“允许重复发生的”:假的};
然后,您的javascript代码介于
之间。如下所示:

<script src="http://code.jquery.com/jquery-latest.min.js"></script>
<script>
    alert(jsondata.user_id); // return user_id value

    jQuery.each(jsondata.purchase_packs, function(i, val) {   
      alert(val.amount); // return amount
      var paymentMethod = val.allowed_payment_methods;
      jQuery.each(paymentMethod, function() {
          alert(this); // will return all payment gateway method
        });     
    });
</script>

警报(jsondata.user_id);//返回user_id值
每个(jsondata.purchase_包,函数(i,val){
警报(val.amount);//返回金额
var paymentMethod=val.allowed_PaymentMethods;
each(paymentMethod,function()){
警报(此);//将返回所有支付网关方法
});     
});

希望会有所帮助!

在使用cURL收到响应后,只需在
标记之间回显json字符串

然后json字符串将如下所示:

<script>
var jsondata = {"user_id":1,"currency":"eur","purchase_packs":{"1":{"amount":500,"allowed_payment_methods":["ideal","paypal","visa","mc"]},"3":{"amount":1000,"allowed_payment_methods":["mc","ideal","paypal","visa"]},"6":{"amount":2500,"allowed_payment_methods":["mc","ideal","paypal"]},"8":{"amount":5000,"allowed_payment_methods":["ideal"]},"9":{"amount":10000,"allowed_payment_methods":["ideal"]}},"payment_methods":{"ideal":{"name":"ideal","allow_recurring":false},"paypal":{"name":"paypal","allow_recurring":false},"visa":{"name":"visa","allow_recurring":false},"mc":{"name":"mc","allow_recurring":false}}};
</script>

var jsondata={“用户id”:1,“货币”:“欧元”,“购买包”:{“1”:{“金额”:500,“允许付款方式”:[“理想”、“贝宝”、“visa”、“mc”]},“3”:{“金额”:1000,“允许付款方式”:[“mc”、“理想”、“贝宝”、“visa”},“6”:{“金额”:2500,“允许付款方式”:[“mc”、“理想”、“贝宝”},“8”:{“金额”:5000,“允许付款方式”:“理想”},“9{”金额:10000,“允许的支付方式”:[“理想”]},“支付方式”:{“理想”{“名称”:“理想”{“名称”:“允许重复”:假},“贝宝”:{“名称”:“贝宝”,“允许重复”:假},“visa”:{“名称”:“visa”,“允许重复”:假},“mc”:{“名称”:“mc”,“允许重复”:假};
然后,您的javascript代码介于
之间。如下所示:

<script src="http://code.jquery.com/jquery-latest.min.js"></script>
<script>
    alert(jsondata.user_id); // return user_id value

    jQuery.each(jsondata.purchase_packs, function(i, val) {   
      alert(val.amount); // return amount
      var paymentMethod = val.allowed_payment_methods;
      jQuery.each(paymentMethod, function() {
          alert(this); // will return all payment gateway method
        });     
    });
</script>

警报(jsondata.user_id);//返回user_id值
每个(jsondata.purchase_包,函数(i,val){
警报(val.amount);//返回金额
var paymentMethod=val.allowed_PaymentMethods;
each(paymentMethod,function()){
警报(此);//将返回所有支付网关方法
});     
});

希望会有帮助!

如果使用jquery可以指定响应类型,那么js ajax调用将接收从php返回的json并将其存储为本地对象,然后您可以访问。不需要在php中将其转换为任何内容……它已经是json字符串。只需回显字符串即可使用ajax。好吧,我已经尝试过不转换它,只需回显即可字符串,当我这样做时:data.user_id,它表示它未定义。如果使用jquery,您的js ajax调用可以指定响应类型,因此它将获取从php返回的json,并将其存储为您可以访问的本地对象。无需在php中将其转换为任何内容……它已经是json字符串。只需回显字符串,ajax即可使用l、 我尝试过不转换它,只回显字符串,当我这样做时:data.user_id它说它未定义。JSON parse完成了正确访问元素的工作。但是for循环需要在代码的javascript部分,而不是PHP中。Rajiv Ranjan的答案有效。所以你们两个都帮了我。在这种情况下,如何选择最佳答案?单击o接受这个答案“我知道如何接受答案。我只是不知道该选哪一个。但是我会选择你的,因为你更快,这是我问题的第一部分。JSON解析完成了正确访问元素的工作。但是for循环需要在代码的javascript部分,而不是PHP中。拉吉夫·兰扬的答案是有效的。所以你们两个都帮了我。如何在这种情况下选择最佳答案?单击“答案投票”下的“接受此答案”我知道如何接受答案。我只是不知道该选哪一个。但我会选择你的,因为你跑得更快,这是我问题的第一部分。这帮了我很大的忙!非常感谢。这帮了大忙!非常感谢。