簡體   English   中英

PHP字符串到JSON數組

[英]PHP string to json array

所以基本上我正在發出cURL請求並獲得看起來像這樣的響應(var_dump):

string(595) "{"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}}}"

我想要的是像這樣在JS文件中訪問它:

success: function (data) {
    alert(data.user_id);
}

但我不知道如何正確轉換(?)。

然后,我的下一步(問題)將是我是否可以為每個購買的包裝盒進行for循環,以便為每個包裝盒創建按鈕

大概是這樣的:

var pack;
var packs = data.purchase_packs;
for (pack= 0; pack < packs.length; pack++) {
    console.log(packs[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);

使用cURL收到響應后,只需在<script></script>標記之間回顯該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>

然后,您的<script></script>之間的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>

希望會有所幫助!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM