如何通过PHP访问JSON.stringify中的JSON数据


How to make JSON data from JSON.stringify accessible by PHP

好的,所以我需要PHP来运行javascript动态生成的一堆URL。到目前为止,我使用PHP获取数据的唯一经验是使用网站的url,该url通过API直接提供JSON数据。

因此,在经历了许多痛苦的小时,经历了各种各样的困难之后,我终于获得了我的数据,我拥有了完美的JSON语法的URL和id(感谢JSON.stringify((!(。现在,我真的想把PHP指向一个url,以便开始使用这个JSON。。。。但是怎么回事?!

我很犹豫是否发布这篇文章,但如果能朝着正确的方向努力一点,我将不胜感激。从我现在看到的情况来看,我似乎需要更多地研究如何将这些数据发布到我的服务器上?我应该研究AJAX吗?

再说一次,我知道这是一个真正的初学者问题,所以我更多的是寻找朝着正确方向的轻微推动,而不是给我一块需要使用的代码。

感谢您的帮助!

您需要做的事情有两部分:

  1. 将JSON发送到服务器。

  2. 将JSON解码为PHP"关联数组"。

第一部分可以通过提交表单或使用ajax向服务器发送POST来完成 如果你不使用任何库,你可以使用XMLHttpRequest来实现这一点,但所有主要的JavaScript库都有方便的功能,可以让它变得更容易。由于将JSON字符串发送到服务器的最简单方法是使用标准的多部分表单数据编码,因此请确保使用encodeURIComponent对JSON字符串进行编码。例如:

var xhr = new XMLHttpRequest(); // Older browers may need some special handling when creating the object
xhr.open("POST", "/path/to/your/page");
xhr.send("jsondata=" + encodeURIComponent(yourJsonString));

既然您已经说过要使用jQuery,那么您可以使用ajax将数据发布到服务器:

$.ajax({
    url:     "/path/to/your/page.php",
    type:    "POST",
    data:    {jsondata: yourJsonString},
    success: function(data) {
        // Handle successful post here, use `data` if your PHP
        // page sends a reply
    },
    error:   function() {
        // Handle error here
    }
});

第二部分(接收JSON并对其进行解码(是通过接受POST变量(上面的jsondata(并通过json_decode对其进行译码来完成的。