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. 【Linux/Ubuntu学习2】ubuntu-ubuntu10.04使用wine安装SourceInsight

    1. 环境:ubuntu10.04 2. 安装 wine 关于 wine ,请参考这里.通过网络安装: $ sudo apt-get install wine 3. 安装 SourceInsight ...

  2. Tomcat内存设置详解

    Java内存溢出详解 一.常见的Java内存溢出有以下三种: 1. java.lang.OutOfMemoryError: Java heap space ----JVM Heap(堆)溢出 JVM在 ...

  3. javascript学习笔记-1

    说起来也挺丢人的,自己干了八年it,却从来没有好好从基础学习下javascript,曾经还认为和java有着多么大的联系. 真的很惭愧.今天开始有时间了,打算打打基础. JavaScript 有什么特 ...

  4. 关于CSS的只言片语

    这段时间做了一个简单的页面,借机又重温了一下CSS的相关知识,现总结一下: 工欲善其事必先利其器,让我们先做一点准备工作 1.在页面添加: <meta http-equiv="x-ua ...

  5. css3 transfrom使用以及其martix(矩阵)属性与其它属性的关系

    写法 其属性martix与skew .scale .translate之间的关系   兼容性 :       IE9+ : -ms-transform :  IE9只支持2D转换       fire ...

  6. jquery实现简单的ajax

    -->html页 1: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "htt ...

  7. ubuntu上部署github博客,利用hexo

    安装Node.js三种安装方法,前两种是我安装过的,后一种是 Google 到的. #####①:apt-get 安装在 终端 输入 nodejs 或者 npm ,如果没有安装会提示你进行安装,命令如 ...

  8. DNS map file in windows

    Edit "C:\WINDOWS\system32\drivers\etc\hosts", add the IP to DNS name mapping.

  9. IE6的position:fixed

    手头一个项目中,要实现把一个浮层控制在浏览器窗口右下角,用”position:fixed”来控制最合适不过了. 但万恶的IE6不支持这个属性,之前采用过的方法有:将滚动条转移到body上,使用绝对定位 ...

  10. 第六十九篇、OC_录制语音和播放语音功能的实现

    录制: 1.设置全局属性 NSURL *recordedFile;//存放路径 AVAudioPlayer *player;//播放 AVAudioRecorder *recorder;//录制 NS ...