json对象与json字符串的区别
2024-10-19 05:27:48
最近糟了这个坑,同一个方法,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));
最新文章
- Windows Server2008 下用于.NET Framework3.0版本的问题无法在IIS7中配置.NET Framework4.0节点的问题
- 纯css3天气动画场景特效
- System.Diagnostics.Process 启动进程资源或调用外部的命令的使用
- C/C++中的NULL讨论和总结
- Oracle补习班第四天
- ruby(&;gem) koala安装
- Linux-内核缓存区和write行为
- 【SVN】win7 搭建SVN服务器
- OO之工厂模式
- hibernate中load,get;find,iterator;merge,saveOrUpdate,lock的区别
- C++那些库
- HGE项目升级时遇到的问题及解决方式记录
- 管理员控制Windows Service
- JAVA-实例方法被覆盖,静态方法被隐藏Explain
- bootstarp-fileinput上传 火狐防止拖入文件直接打开新页面
- 【WebGL】《WebGL编程指南》读书笔记——第6章
- Signed Distance Field Shadow in Unity
- 微星X470主板装机
- 使用HttpUtils完成Http Basic 认证
- Keras 中 TimeDistributed 和 TimeDistributedDense 理解
热门文章
- shiro配置说明
- 3- 功能2:基于forms组件和ajax实现注册功能
- thymeleaf多条件判断
- ipa包兼容性大作战!WeTest iOS深度兼容测试全新升级
- Eclipse启动Tomcat错误:Several ports (8080, 8009) required by Tomcat v6.0 Server at localhost are already
- JavaScript——变量与基本数据类型
- LR测试报告分析 -详解
- Loadrunner安装使用入门
- windows下在idea用maven导入spark2.3.1源码并编译并运行示例
- lsblk命令详解