源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

有关JSON以及JSON在PHP中的应用

  • 时间:2020-07-02 12:54 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:有关JSON以及JSON在PHP中的应用
[url=http://www.ibm.com/developerworks/cn/xml/wa-ajaxintro3/] [i]掌握 Ajax,第 3 部分[/i]:Ajax 中的高级请求和响应[/url]” 中见过,应该比较熟悉,第 3 部分重点介绍了如何发送 POST 请求。请求使用 POST 而非 GET 打开,而且 Content-Type 头被设置为让服务器预知它能得到何种数据。在这种情况下,即为 [code]application/x-www-form-urlencoded[/code],它让服务器知道现在发送的是文本,正如它从常规的 HTML 表单中得到的一样。 另 一个简单提示是 URL 的末尾追加了时间。这就确保了请求不会在它第一次被发送后即缓存,而是会在此方法每次被调用后重新创建和重发;此 URL 会由于时间戳的不同而稍微有些不同。这种技巧常被用于确保到脚本的 POST 每次都会实际生成新请求且 Web 服务器不会尝试缓存来自服务器的响应。 [url=http://www.ibm.com/developerworks/cn/web/wa-ajaxintro11.html#resources]参考资料[/url])。 在这里,除了可以了解此格式本身的方方面面之外,还可以通过各种链接找到 JSON 的各种工具和解析器,从 ASP 到 Erlang,到 Pike,再到 Ruby,应有尽有。您只需针对自己编写脚本所用的语言下载相应的工具箱即可。为了让服务器端脚本和程序能够使用此工具箱,可以根据情况对其进行选择、扩 展或安装(如果在服务器端使用的是 C#、PHP 或 Lisp,则可变性更大)。 例如,如果使用的是 PHP,可以简单将其升级至 PHP 5.2 并用它完成操作;在 PHP 这个最新版本默认包含了 JSON 扩展。实际上,那也是在使用 PHP 时处理 JSON 的最好方法。如果使用的是 Java servlet,json.org 上的 [code]org.json[/code] 包显然就是个不错的选择。在这种情况下,可以从 JSON Web 站点下载 json.zip 并将其中包含的源文件添加到项目构建目录。编译完这些文件后,一切就就绪了。对于所支持的其他语言,同样可以使用相同的步骤;使用何种语言取决于您对该语 言的精通程度,最好使用您所熟悉的语言。 使用 JSON 解析器 一旦获得了程序可用的资源,剩下的事就是找到合适的方法进行调用。比如,假设为 PHP 使用的是 JSON-PHP 模板:
// This is just a code fragment from a larger PHP server-side script
require_once('JSON.php');

$json = new Services_JSON();

// accept POST data and decode it
$value = $json->decode($GLOBALS['HTTP_RAW_POST_DATA']);

// Now work with value as raw PHP
通过该模板,可将获得的所有数据(数组格式的、多行的、单值的或 JSON 数据结构中的任何内容)转换成原生 PHP 格式,放在 [code]$value[/code] 变量中。 如果在 servlet 中使用的是 [code]org.json[/code] 包,则会使用如下代码:
public void doPost(HttpServletRequest request, HttpServletResponse response)
 throws ServletException, IOException {

 StringBuffer jb = new StringBuffer();
 String line = null;
 try {
  BufferedReader reader = request.getReader();
  while ((line = reader.readLine()) != null)
   jb.append(line);
 } catch (Exception e) { //report an error }

 try {
  JSONObject jsonObject = new JSONObject(jb.toString());
 } catch (ParseException e) {
  // crash and burn
  throw new IOException("Error parsing JSON request string");
 }

 // Work with the data using methods like...
 // int someInt = jsonObject.getInt("intParamName");
 // String someString = jsonObject.getString("stringParamName");
 // JSONObject nestedObj = jsonObject.getJSONObject("nestedObjName");
 // JSONArray arr = jsonObject.getJSONArray("arrayParamName");
 // etc...
}
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部