最近糟了这个坑,同一个方法,android和ios返回的数据不一样,一个是json字符串,另一个是json对象(至于为什么后台返回的是json对象,还没找到原因,但是我看到的后台的代码是有在返回之前给我转成字符串过来的),而我把返回的结果直接拿来用JSON.parse()转成json对象,导致android正常,在ios上面报错。

等一下,有点懵,所以整理了一下资料,当作笔记。

问题一:什么是"JSON字符串",什么是"JSON对象",两者的区别?【借鉴的别人的定义】

1.JSON对象是直接可以使用JQuery操作的格式,如C#中可以用对象(类名)点出属性(方法)一样;

2.JSON字符串仅仅只是一个字符串,一个整体,不截取的话没办法取出其中存储的数据,不能直接使用,除非你只想alert()他;

    // json对象
var str1 = {"name": "jessie", "sex": "female"}; // json字符串
var str2 = '{"name": "jessie", "sex": "female"}';

问题二: 将"JSON字符串"转化为"JSON对象"的方法?

1.使用$.parseJSON(str) 依赖jquery

    var test1 = '{"name": "jessie"}';
var obj1 = jQuery.parseJSON(test1);
console.log(obj1.name); // jessie

ps:此种方式仅支持标准格式:var str='{ "name": "jessie" }';

2.JSON.parse(str)

    var test2 = '{"name": "jessie", "sex": "female"}';
var obj2 = JSON.parse(test2);
console.log(obj2.name); // jessie

ps:此种方式仅支持标准格式:var str='{ "name": "jessie" }';

3.使用eval('('+str+')');

    var test3_1 = '{"name": "jessie"}';
var test3_2 = "{'name': 'jessie'}";
var test3_3 = "{name: 'jessie'}";
var obj3_1 = eval('('+test3_1+')');
var obj3_2 = eval('('+test3_2+')');
var obj3_3 = eval('('+test3_3+')');
console.log(obj3_1.name);
console.log(obj3_2.name);
console.log(obj3_3.name);
//console.log(JSON.parse(test3_3).name); // 报错: Uncaught SyntaxError: Unexpected token n in JSON at position 1

Eval方式可以转换以下标准和非标准格式字符串:

    var test3_1 = '{"name": "jessie"}';
var test3_2 = "{'name': 'jessie'}";
var test3_3 = "{name: 'jessie'}";

问题三:将"JSON对象"转化为"JSON字符串"的方法?

    // 使用全局方法JSON.stringify()
var object1 = {"name": "jessie"};
console.log(JSON.stringify(object1));

最新文章

  1. Windows Server2008 下用于.NET Framework3.0版本的问题无法在IIS7中配置.NET Framework4.0节点的问题
  2. 纯css3天气动画场景特效
  3. System.Diagnostics.Process 启动进程资源或调用外部的命令的使用
  4. C/C++中的NULL讨论和总结
  5. Oracle补习班第四天
  6. ruby(&gem) koala安装
  7. Linux-内核缓存区和write行为
  8. 【SVN】win7 搭建SVN服务器
  9. OO之工厂模式
  10. hibernate中load,get;find,iterator;merge,saveOrUpdate,lock的区别
  11. C++那些库
  12. HGE项目升级时遇到的问题及解决方式记录
  13. 管理员控制Windows Service
  14. JAVA-实例方法被覆盖,静态方法被隐藏Explain
  15. bootstarp-fileinput上传 火狐防止拖入文件直接打开新页面
  16. 【WebGL】《WebGL编程指南》读书笔记——第6章
  17. Signed Distance Field Shadow in Unity
  18. 微星X470主板装机
  19. 使用HttpUtils完成Http Basic 认证
  20. Keras 中 TimeDistributed 和 TimeDistributedDense 理解

热门文章

  1. shiro配置说明
  2. 3- 功能2:基于forms组件和ajax实现注册功能
  3. thymeleaf多条件判断
  4. ipa包兼容性大作战!WeTest iOS深度兼容测试全新升级
  5. Eclipse启动Tomcat错误:Several ports (8080, 8009) required by Tomcat v6.0 Server at localhost are already
  6. JavaScript——变量与基本数据类型
  7. LR测试报告分析 -详解
  8. Loadrunner安装使用入门
  9. windows下在idea用maven导入spark2.3.1源码并编译并运行示例
  10. lsblk命令详解