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. 【Python千问 1】Python核心编程(第二版)导读

    第一章 欢迎来到Python世界 什么是Python Python的起源 Python的特点 下载Python 安装Python 运行Python Python文档 比较Python(与其它语言的比较 ...

  2. 【Mood-8】IT男!五更天!

    男人从毕业到30岁之间所承受的叠加的压力,赡养父母.结婚生子.升职加薪.工作压力.生活质量,这些东西可以压得我们喘不过起来,也成为我们成长的动力, 我们累,但不说累,我们闷着头做事儿,不张扬,但每个都 ...

  3. 怒刷DP之 HDU 1069

    Monkey and Banana Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u S ...

  4. python学习好书推荐

    1.  编程小白的第一本 Python 入门书 http://www.ituring.com.cn/book/1863 点评:知识体系全面,作者也是功底深厚.对全面了解python非常有帮助.入门级推 ...

  5. Matlab之画图

    1.设置对数坐标 set(gca,'XScale','log','YScale','log'); 2.加网格 grid on; 3.加log对齐网格 set(gca,'XScale','log','Y ...

  6. JS 数组乱序

    因为不想在后台操作,就使用js进行 涉及到了一个打乱数组顺序的方法 百度到的一篇 Author : Jun.lu http://www.cnblogs.com/idche/archive/2010/0 ...

  7. SQL SERVER 2008 R2 错误代码 17000 - 17999

    错误 严重性 是否记录事件 说明(消息正文) 17000 10 否 用法: sp_autostats <table_name> [, {ON|OFF} [, <index_name& ...

  8. Window下配置NodeJs环境详解

        今年打算学习Web这块,所以就买了本Node.js+MongoDb+AngularJS这本书,这周天也比较忙,想着录视频(拍小片,不是AV,不要误会,是在线课程)的事情,这周又将Asp.Net ...

  9. http请求访问过程

    流程图(理解): 域名的作用: 对外,供访问 对内,提供域名与目录的对应关系 步骤说明: http://www.163.com/index.html 第1步:在本机的hosts文件中查找域名与IP的对 ...

  10. java大数--总结

    BigInteger(高精度整数) 1.所在包: java.math.BigInteger 2.大数运算,以下返回类型均为BigInteger BigInteger a; BigInteger b; ...