Json对象去重

今日有一个需求如下:

从数据库中取出数据源转化成json字符串绑定到隐藏域中,取出的json字符串如下:

string data="[{"CompanyName":"集团总部","CompanyCode":"ORG2"},{"CompanyName":"集团总部","CompanyCode":"ORG2"}]";

现在需要绑定到html上的select,就会出现重复的下拉数据了。

希望得到的数据是:string data="[{"CompanyName":"集团总部","CompanyCode":"ORG2"}]";

如下代码:

 <td style="width: 80px">
<label class="labDoc">公司:</label>
</td>
<td style="width: 200px;">
<select id="sel_Company">
</select>
</td>

解释几点:

1.jQuery.parseJSON()函数用于将格式完好的JSON字符串转为与之对应的JavaScript对象(由于我是从C#取的DataTable转化成的Json字符串)

2.toJSON 方法用来将一个普通的 JavaScript 对象序列化为 JSON 串

如果有不明白的地方请参考(http://www.cnblogs.com/haogj/archive/2011/12/01/2271098.html)

//在页面初始化时加载此方法  
function getDept() {
var data1 = jQuery.parseJSON($("#DeptData").val()); //DeptData是一个隐藏域从PageLoad中绑定的Json字符串
//alert($("#CompanyData").val());
var data = jQuery.parseJSON(disJson(data1));
$("#sel_Company").append("<option value=''>-----请选择公司-----</option>");
for (var i = 0; i < data.length; i++) {
$("#sel_Company").append("<option value='" + data[i].CompanyCode + "'>" + data[i].CompanyName + "</option>");
}
} //去重Json对象
function disJson(data) {
     //首先创建2个数组,一个用来返回Json字符串(arr),另一个用于计算是否出现重复数据(arrCompare)
var arr = new Array();
var arrCompare = new Array();
for (var i = 0; i < data.length; i++) {
this.model = {
CompanyCode: data[i].CompanyCode,
CompanyName: data[i].CompanyName
}
       //这里我用比较重复数组来查看是否包含新的公司代码,-1没有可以继续插入数组,0则为存在则不可
       //这里不能用arr.indexOf(data[i])==-1这样去比较
       //因为这样都是[Object Object]没办法去比到底是哪个对象
if (arrCompare.indexOf(data[i].CompanyCode) == -1) {
arr.push(model);
arrCompare.push(data[i].CompanyCode);
}
} //alert($.toJSON(arr))
return $.toJSON(arr);
}

JS对Json对象Distinct的更多相关文章

  1. Js拼Json对象

     我们通常会拼字符串,但是拼字符串的话,遇见占位符会出错.  下面分享一个拼js拼json对象的方法:          var jsonArr = [];                     $ ...

  2. js遍历json对象

    原生js遍历json对象 遍历json对象: 无规律: <script> var json = [ {dd:'SB',AA:'东东',re1:123}, {cccc:'dd',lk:'1q ...

  3. js 替换json对象中的键名

      js 替换json对象中的键名 CreateTime--2018年3月30日15:38:50 Author:Marydon 情景描述: 有个json数组,现在需要将json对象中的key替换掉,值 ...

  4. js中 json对象与json字符串相互转换的几种方式

    以下总结js中 json对象与json字符串相互转换的几种方式: 一.JSON对象转化为JSON字符串 1.使用JSON.stringify()方法进行转换 该方法不支持较老版本的IE浏览器,比如:i ...

  5. 类对象传输到jsp页面。需要转换为js的json对象时,这么做。

    场景:要从一个列表中选择信息,填写入父页面的表单中,但是字段非常多... 后台查询,得到结果,放在列表中. 效果:点击选择产品.. 弹出页面:点击后面的选择产品 选择产品后:信息自动填充.. 实现:点 ...

  6. js 将json对象转成字符串

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  7. js中json对象和字符串的转换

    JSON.parse() : 字符串-->json对象 var str = '{"name":"huangxiaojian","age" ...

  8. js 中 json对象 与 json字符串 间相互转换

    在数据传输过程中,json是以文本,即字符串的形式传递的,而JS操作的是JSON对象,所以,JSON对象和JSON字符串之间的相互转换是关键 JSON字符串:  var str1 = '{ " ...

  9. JS 中 JSON 对象与字符串之间的相互转换

    在开发的过程中,如果对于少量参数的前后台传递,可以直接采用ajax的data函数,按json格式传递,后台Request即可,但有的时候,需要传递多个参数,这样后台 接受的时候Request多个很麻烦 ...

随机推荐

  1. MySQL关于InnoDB的几个错误

    阿里云服务器上装有MySQL 5.6,这几天MySQL服务经常死掉,启动MySQL服务(service mysql start),却报如下错误 Starting MySQL.. ERROR! The ...

  2. Ubuntu(16.04) 下如何修改(安装)arm-linux-gcc编译器

    ubuntu下如何修改(安装)arm-linux-gcc编译器 将gcc解压到根目录 sudo tar xjf arm-linux-gcc-4.3.2.tar.bz2 -C / 查看原来的环境变量 e ...

  3. 初识 Asp.Net内置对象之Session对象

    Session对象 Session对象用于存储在多个页面调用之间特定用户的信息.Session对象只针对单一网站使用者,不同的客户端无法相互访问.Session对象中止联机机器离现时,,也就是当网站使 ...

  4. Linux apache日志分析常用命令汇总

    1.查看当天有多少个IP访问: awk '{print $1}' log_file|sort|uniq|wc –l 2.查看某一个页面被访问的次数: grep "/index.php&quo ...

  5. [转]移动App测试中的最佳做法

    Daniel Knott 用过各种不同编程语言和软件质量保证工具.他在软件开发和测试方面干了七年,自2010年起,他一直在德国汉堡的XING AG公司就职,几个项目里,比如XING调查和XING建议, ...

  6. Ajax大文件切割传输

    文件上传服务器的大小是一定的,所以大文件可以切割成小文件,依次 传输,然后再拼接切割文件上传,用同步方式传输,为了防止异步传输 中多个块同时传输,文件拼接错误,导致文件损坏 前端页面 <!doc ...

  7. 【CSS3】---颜色RGBA及渐变色

    颜色之RGBA RGB是一种色彩标准,是由红(R).绿(G).蓝(B)的变化以及相互叠加来得到各式各样的颜色.RGBA是在RGB的基础上增加了控制alpha透明度的参数. 语法: color:rgba ...

  8. Asp.Net-创建网站的快捷方式到桌面,开始菜单,收藏夹

            /// <summary>         /// 创建快捷方式         /// </summary>         /// <param na ...

  9. JavaScript引用类型(二)

    Date类型 Javascript中的Date类型是采用Java中的java.util.Date类基础上构建的,使用UTC时间来保存数据,可以精确到1970年1月1日之前或之后的285616年 创建一 ...

  10. android sdk manager 无法更新

    1.在C:\Windows\System32\drivers\etc找到Hosts文件用记事本打开,在最末尾添加如下代码,保存关闭: #Google主页203.208.46.146 www.googl ...