在json格式的值中如果name为有规律的名称,例如下面的代码:

{"add0":"address0","add1":"address1","add2":"address2","add3":"address3","add4":"address4"...}

那么在页面显示处理时,如果要将其值放入诸如<td>界面元素中,第一直觉就是采用循环方法:

success: function(msg){
            for (var j=0; j<100; j++){
                //var px='add'+j;
                $("#add"+j).html(msg.('add'+j));

//失败,将'add'+j赋值给变量px亦失败。和msg.add0的形式相比可能是msg后不能接字符串
            }

解决方法:

1. 变换一下json格式为集合的形式:

{"add":["address0","address1","address2","address3","address4"...]}

然后循环遍历:

success: function(msg){
            var j=0;
            $.each(msg.add,function(idx,item){
                if(idx==0){
                return true;//同countinue,返回false同break
                }
                $("#add"+j).html(item);
                j++;
            });
        }

或用一般的js循环遍历:

success: function(msg){
            for (var j=0; j<msg.add.length; j++){
                $("#add"+j).html((msg.add)[j]);
               }
        }

2. 第二种json格式变换:

{"add":[{"add":"address0"},{"add":"address1"},{"add":"address2"},{"add":"address3"},{"add":"address4"}...]}

success: function(msg){
            var j=0;
            $.each(msg.add,function(idx,item){
                if(idx==0){
                return true;//同countinue,返回false同break
                }
                $("#add"+j).html(item.address);
                j++;
            });
        }

将 String 对象编码为 JSON 格式时,只需处理好特殊字符即可。另外,必须用 ("") 而非 ('') 表示字符串,下面的格式将无法被读取:
{'name':'Oliver','add':'st'}; //应改为{"name":"Oliver","add":"st"};

用jquery解析JSON数据的方法,作为jquery异步请求的传输对象,jquery请求后返回的结果是json对象,这里考虑的都是服务器返回JSON形式的字符串的形式,对于利用JSONObject等插件封装的JSON对象,与此亦是大同小异,这里不再做说明。
这里首先给出JSON字符串集,字符串集如下:
代码如下:
var data="
{
root:
[
{name:'1',value:'0'},
{name:'6101',value:'北京市'},
{name:'6102',value:'天津市'},
{name:'6103',value:'上海市'},
{name:'6104',value:'重庆市'},
{name:'6105',value:'渭南市'},
{name:'6106',value:'延安市'},
{name:'6107',value:'汉中市'},
{name:'6108',value:'榆林市'},
{name:'6109',value:'安康市'},
{name:'6110',value:'商洛市'}
]
}";
这里以jquery异步获取的数据类型——json对象和字符串为依据,分别介绍两种方式获取到的结果处理方式。
1.对于服务器返回的JSON字符串,如果jquery异步请求没做类型说明,或者以字符串方式接受,那么需要做一次对象化处理,方式不是太麻烦,就是将该字符串放于eval()中执行一次。这种方式也适合以普通javascipt方式获取json对象,以下举例说明:
var dataObj=eval("("+data+")");//转换为json对象
alert(dataObj.root.length);//输出root的子对象数量
$.each(dataObj.root,fucntion(idx,item){
if(idx==0){
return true;
}
//输出每个root子对象的名称和值
alert("name:"+item.name+",value:"+item.value);
})
注:对于一般的js生成json对象,只需要将$.each()方法替换为for语句即可,其他不变。
2.对于服务器返回的JSON字符串,如果jquery异步请求将type(一般为这个配置属性)设为“json”,或者利用$.getJSON()方法获得服务器返回,那么就不需要eval()方法了,因为这时候得到的结果已经是json对象了,只需直接调用该对象即可,这里以$.getJSON方法为例说明数据处理方法:
$.getJSON("http://www.phpzixue.cn/",{param:"gaoyusi"},function(data){
//此处返回的data已经是json对象
//以下其他操作同第一种情况
$.each(data.root,function(idx,item){
if(idx==0){
return true;//同countinue,返回false同break
}
alert("name:"+item.name+",value:"+item.value);
});
});
这里特别需要注意的是方式1中的eval()方法是动态执行其中字符串(可能是js脚本)的,这样很容易会造成系统的安全问题。所以可以采用一些规避了eval()的第三方客户端脚本库,比如JSON in JavaScript就提供了一个不超过3k的脚本库。

处理json格式的数据时出现的问题相关推荐

  1. asp.net MVC控制器中返回JSON格式的数据时提示下载

    Asp.net mvc在接收的是JSON格式的数据,但是奇怪的是在IE中提示下载文件,其他浏览器中一切正常,下载后,里面的内容就是在控制器中返回的数据.代码如下: 视图中js代码: $("# ...

  2. java异步请求显示数据格式_JSON(四)——异步请求中前后端使用Json格式的数据进行交互...

    json格式的数据广泛应用于异步请求中前后端的数据交互,本文主要介绍几种使用场景和使用方法. 一,json格式字符串 functionsentAjax(){ $.ajax({ type:'POST', ...

  3. 处理JSON格式的数据

    JSON格式的数据是最常用的数据格式,处理方法的选择就显得比较重要了.我常用的一种是用对象来接收,然后保存在数组中,需要时直接从数组中取值.下面列出一个小例子. 1.在.h文件中: #import & ...

  4. Spring MVC--自定义HttpMessageConverter接收JSON格式的数据

    替换默认的Jackson,使用fastjson来处理json格式的数据. index.jsp <%@ page language="java" contentType=&qu ...

  5. Spring MVC--接收JSON格式的数据

    Spring mvc使用开源的Jackson包来处理JSON格式的请求或相应消息. index.jsp <%@ page language="java" contentTyp ...

  6. flex 解析json文件_使用 Python 处理 JSON 格式的数据 | Linux 中国

    如果你不希望从头开始创造一种数据格式来存放数据,JSON 是一个很好的选择.如果你对 Python 有所了解,就更加事半功倍了.下面就来介绍一下如何使用 Python 处理 JSON 数据.-- Se ...

  7. hive 导出json格式 文件_hive支持json格式的数据

    Hive 支持完全 json 格式的数据  现有 json 格式的数据 test.txt ,如下 {"name":"zhang","age" ...

  8. android 网页json数据传输,如何将JSON格式的数据从WebView传递到HTML页面

    我试图将JSON格式的数据从我的Android WebView传递到HTML页面.但是,每当我尝试解析原始JSON数据时应用程序崩溃,我希望格式为{"key":"data ...

  9. java发送post请求json格式_Linux QT 4G发送HTTP POST请求发送JSON格式的数据

    一.在PC Window(QT5版本) 1.1.构建URL 1.2.构建HTTP请求头 1.3.连接信号与操作,接收服务器回复的消息 槽函数这里我们要在头文件定义,然后把处理过程实现. void Ma ...

最新文章

  1. 想挖矿?不如先学习一下以太坊
  2. java泛型函数 返回值_java 泛型(类)方法返回值为什么是 Object??
  3. luogu P3398 仓鼠找sugar(树链剖分、求树上两条路径有没有交点,爽!)
  4. 8款审核AWS帐户安全性的免费工具,你值得拥有
  5. 2020-11-15(IEEE浮点数计算)
  6. 2013手机App发展趋势预测:遇冷和洗牌
  7. linux创建线程未定义,Linux中未定义的对p线程_CREATE的引用
  8. C++实现静态顺序表的增删查改以及初始化
  9. linux 关闭登录权限,linux – /var/www/html的权限[已关闭]
  10. 听说本周五要进行一个小测试,公司对员工的考核
  11. FlexSPI driver用法
  12. 进一步优化SPA的首屏打开速度(模块化与懒载入) by 嗡
  13. 视觉SLAM十四讲第一讲
  14. AMS1117-3.3电源芯片损坏分析
  15. 捷讯fw300r虚拟服务器口号,迅捷FW300R开启UPnP功能
  16. 民间计算机网络高手,高手在民间!牛人用Excel创作的惊人画作
  17. 计算机显示 亮度怎么调整,电脑屏幕亮度调整一直显示怎么办
  18. 生物识别技术是什么,生物识别技术的比较介绍
  19. 编译器工具链初步解析
  20. TearDrop代码编程与SOCKET应用实例

热门文章

  1. C#串口助手-Excel数据保存
  2. unity3d 网络游戏任务系统设计考良(待续)
  3. Nacos注册中心和服务消费方式(服务治理)
  4. 2023年全国最新二级建造师精选真题及答案9
  5. zico图标系统1.4版发布-更加优秀的图标引用与设计创作平台
  6. 使用多线程实现卖火车票
  7. 30秒就能学会一个Python小技巧你能信
  8. Docker镜像推送阿里云和私有库
  9. [HDCTF2019]Maze 题解
  10. 杰理之耳机单麦回音消除不干净【篇】