当前位置:小鱼儿玄机二站 > 关于计算机 > 数组的法门,jQuery完结form表单成分系列化为jso

数组的法门,jQuery完结form表单成分系列化为jso

文章作者:关于计算机 上传时间:2019-09-03

本文实例讲述了jQuery实现form表单元素序列化为json对象的方法。分享给大家供大家参考,具体如下:

如下所示:

这段代码序列化form表单元素为json对象:

<?php
//php反编码解析json信息
//json_decode(json字符串);
$city = array('shandong'=>'jinan','henan'=>'zhengzhou','hebei'=>'shijiazhuang');
$jn_city = json_encode($city);
//反编码json
$fan_city = json_decode($jn_city,false);//第二个参数false则返回object类型,false可以默认不写
var_dump($fan_city);//object(stdClass)#1 (3) { ["shandong"]=> string(5) "jinan" ["henan"]=> string(9) "zhengzhou" ["hebei"]=> string(12) "shijiazhuang" } 
echo "<br />";
$fan_city = json_decode($jn_city,true);//第二个参数true则返回array类型
var_dump($fan_city);//array(3) { ["shandong"]=> string(5) "jinan" ["henan"]=> string(9) "zhengzhou" ["hebei"]=> string(12) "shijiazhuang" }
<!Doctype html>
 <html xmlns=http://www.w3.org/1999/xhtml>
 <head>
 <title>jQuery扩展——form序列化到json对象</title>
 <meta http-equiv=Content-Type content="text/html;charset=utf-8">
 <script type="text/javascript" src="jquery-1.10.2.js"></script>
</head>
<body>
<p id="results"><b>Results:</b> </p>
<form>
 <select name="aModel.single">
 <option>Single</option>
 <option selected>Single2</option>
 </select>
 <br/><br/>
 <select name="aModel.multiple" multiple="multiple">
 <option selected="selected">Multiple</option>
 <option>Multiple2</option>
 <option selected="selected">Multiple3</option>
 </select>
 <br/><br/>
 <input type="checkbox" name="aModel.check" value="check1"/> check1
 <input type="checkbox" name="aModel.check" value="check2" checked="checked"/> check2
 <br/><br/>
 <input type="radio" name="aModel.radio" value="radio1" checked="checked"/> radio1
 <input type="radio" name="aModel.radio" value="radio2"/> radio2
</form>
<script type="text/javascript">
 var fields = $("select, :radio").serializeArray();
 var o={};
 jQuery.each(fields, function(i, fields){
  if(o[this.name]){
   /*
   表单中可能有多个相同标签,比如有多个label,
   那么你在json对象o中插入第一个label后,还要继续插入,
   那么这时候o[label]在o中就已经存在,所以你要把o[label]做嵌套数组处理
   */
   //如果o[label]不是嵌套在数组中
   if(!o[this.name].push){
    o[this.name]=[o[this.name]];  // 将o[label]初始为嵌套数组,如o={a,[a,b,c]}
   }
   o[this.name].push(this.value || ''); // 将值插入o[label]
  }else{
   o[this.name]=this.value || '';  // 第一次在o中插入o[label]
  }
 });
 $("#results").append(JSON.stringify(o));
 console.log(o); //用FireBug输出
</script>
</body>
</html>

手动写的JSON字符串一定要用单引号才能成功反序列化成对象/数组:

结果如下图所示:

<?php 

//json信息反编码 

//不同php版本,对“纯json字符串”解析存在问题 
//使用双引号定义的json字符串反编码操作变为null 
//$jn = "{'name':'tom','age':'20','addr':'beijing'}"; 
//$fan_jn = json_decode($jn,true); 
//var_dump($fan_jn);//NULL 

//使用单引号定义的json字符串反编码操作会成功 
$jn = '{"name":"tom","age":"20","addr":"beijing"}'; 
$fan_jn = json_decode($jn,true); 
var_dump($fan_jn); 

图片 1

以上这篇JSON PHP中,Json字符串反序列化成对象/数组的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

希望本文所述对大家jQuery程序设计有所帮助。

您可能感兴趣的文章:

  • C#实现JSON字符串序列化与反序列化的方法
  • jquery序列化form表单使用ajax提交后处理返回的json数据
  • js解析与序列化json数据(二)序列化探讨
  • Json序列化和反序列化方法解析
  • Jquery 组合form元素为json格式,asp.net反序列化
  • jQuery实现form表单元素序列化为json对象的方法
  • 浅析JSON序列化与反序列化
  • JS实现json的序列化和反序列化功能示例
  • js解析与序列化json数据(三)json的解析探讨
  • JavaScript实现的反序列化json字符串操作示例

您可能感兴趣的文章:

  • JSON PHP中,Json字符串反序列化成对象/数组的方法
  • C#实现JSON字符串序列化与反序列化的方法
  • jquery序列化form表单使用ajax提交后处理返回的json数据
  • js解析与序列化json数据(二)序列化探讨
  • Json序列化和反序列化方法解析
  • Jquery 组合form元素为json格式,asp.net反序列化
  • 浅析JSON序列化与反序列化
  • JS实现json的序列化和反序列化功能示例
  • js解析与序列化json数据(三)json的解析探讨
  • JavaScript实现的反序列化json字符串操作示例

本文由小鱼儿玄机二站发布于关于计算机,转载请注明出处:数组的法门,jQuery完结form表单成分系列化为jso

关键词: