js JSON对象属性
json对象是是一种用于原生json分析的对象,无法对其进行构造函数调用,用java术语 来说,它相当于能够直接使用类方法的工具类
JSON对象的属性
parse(text[,reviver]);
对参数text这一json字符串分析之后 返回一个javascript对象. reviver将会对每个属性调用回调函数,并将返回值赋为属性值
对于reviver函数
reviver(key,val){}
对javascript返回的对象每一个属性调用函数,注意对对象本身也进行一次调用,没有key值,在最后一次,val是对象本身
如果 reviver 返回一个有效值,则成员值将替换为转换后的值
如果 reviver 返回它接收的相同值,则不修改成员值
如果 reviver 返回 null 或 undefined,则删除成员
见下面代码
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>json</title>
</head>
<body>
<script>
//json字符串转换为对象
var s='{"x":1,"y":2,"a":"ajax"}';
////键,值 不可以用单引号包裹 或者属性名不是字符串时 会解析错误
//var s1="{'x':1,'y':2,a:'ajax'}"; 2处错误 解析出错
var json_s=JSON.parse(s);
for(var i in json_s){
console.log(i+":"+json_s[i]);
}
var s1=JSON.stringify(json_s);
console.log(s1);
/*
x:1
y:2
a:ajax
{"x":1,"y":2,"a":"ajax"}
*/
//json字符串数组转换为对象的数组
var arr=JSON.parse("[1,3,5]");
var arr1=JSON.parse('["a","c","b"]');
//键,值 不可以用单引号包裹 否者解析错误
console.log(arr); //[1, 3, 5]
console.log(arr1);//["a", "c", "b"]
console.log(Array.isArray(arr)); //true //将字符串型的json转换为字符串值
var f=JSON.parse('"for"');
console.log(f);//for
console.log(typeof f);//string var s='{"x":1,"y":2,"a":3,"p":"php"}';
function reviver(key,val){
if(key){
if(!isNaN(val)) {
return val+1;
}else{return val.toLocaleUpperCase()}
}else{ //注意此处 是对对象本身的调用 key为空,val是对象本身,一定要返回对象本身
return val;
}
}
var sobj2=JSON.parse(s,reviver);
console.log(sobj2); //Object {x: 2, y: 3, a: 4, p: "PHP"}
</script>
</body>
</html>
stringify(value[,replacer[,space]])
将参数value转换为json字符串,replacer会对每个属性调用回调函数,并将返回值赋为属性值,space是输出时的一个缩进字符串
<script>
var students = new Array() ;
students[0] = "jim";
students[1] = "tom";
students[2] = "lily";
var json = JSON.stringify(students,switchUpper);
function switchUpper(key, value) {
return value.toString().toUpperCase();
}
console.log(json);//"JIM,TOM,LILY"
</script>
js JSON对象属性的更多相关文章
- js 获取对象属性个数
js 获取对象属性个数 方法一: var attributeCount = function(obj) { var count = 0; for(var i in obj) { if(obj.hasO ...
- JS json对象(Object)和字符串(String)互转方法
[JS json对象(Object)和字符串(String)互转方法] 参考:https://blog.csdn.net/wenqianla2550/article/details/78232706 ...
- js自定义对象.属性 笔记
<一> js自定义对象 一,概述 在Java语言中,我们可以定义自己的类,并根据这些类创建对象来使用,在Javascript中,我们也可以定义自己的类,例如定义User类.Hashtabl ...
- js json 对象相互转换
字符串转对象(strJSON代表json字符串) var obj = eval(strJSON); var obj = strJSON.parseJSON(); var obj = JSO ...
- JS JSON对象相关
1.多对象合并 将2个或2个以上对象(object{....})中的属性进行合并,即最后合并为一个object{.....} 解决办法:Object.assign 方法 var form = {nam ...
- C# 反射(GetType) 获取动态Json对象属性值的方法
之前在开发一个程序,希望能够通过属性名称读取出属性值,但是由于那时候不熟悉反射,所以并没有找到合适的方法,做了不少的重复性工作啊! 然后今天我再上网找了找,被我找到了,跟大家分享一下. 其实原理并不复 ...
- JS 自定义对象 属性
js自定义对象 一,概述 在Java语言中,我们可以定义自己的类,并根据这些类创建对象来使用,在Javascript中,我们也可以定义自己的类,例如定义User类.Hashtable类等等. 目前在J ...
- js json 对象
JSON 语法规则 JSON 语法是 JavaScript 对象表示法语法的子集. 数据在名称/值对中 数据由逗号分隔 大括号保存对象 中括号保存数组 JSON 名称/值对 JSON 数据的书写格式是 ...
- JS枚举对象属性的方法及其区别
愉快的中秋节要过去了,国庆倒计时两个周!!! 闲话不多说,那今天我们来看一看JS中枚举对象属性的方法有哪些以及他们的区别 首先在JS里面枚举对象属性一共有三种方法 for in: 会遍历对象中所有的可 ...
随机推荐
- java代码中后台向前台传递list或map集合案例
导入jar包 新建一个servert传递map集合 ajax.java代码: package servlet; import java.io.IOException; import java.io.P ...
- FreeMarker页面中获得contextPath
要在ftl页面中使用contextPath,需要在viewResolver中做如下配置(红色部分): <bean id="viewResolver" class=" ...
- poj 3259 Wormholes spfa算法
点击打开链接 Wormholes Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 25582 Accepted: 9186 ...
- Arch时间校准
sudo ln -s /usr/share/zoneinfo/UTC /etc/localtime sudo hwclock --systohc --utc sudo timedatectl set- ...
- 字符串属性使用strong的原因
*:first-child { margin-top: 0 !important; } body > *:last-child { margin-bottom: 0 !important; } ...
- jdk线程的同步问题
一.银行取款引出的问题 模拟银行取钱的例子: public class ThreadDemo06 { public static void main(String[] args) { Bank ban ...
- linux使用flock文件锁解决crontab冲突问题
* * * * * flock -xn /dev/shm/redis.lock -c "/usr/local/bin/redis-server" 可以用flock命令,配合使用rs ...
- noip2008 笨小猴
P1125 笨小猴 1.6K通过 3.7K提交 题目提供者该用户不存在 标签模拟2008NOIp提高组 难度普及- 提交该题 讨论 题解 记录 题目描述 笨小猴的词汇量很小,所以每次做英语选择题的 ...
- tomcat 页面管理
<role rolename="admin-gui"/> <role rolename="manager-gui"/> <user ...
- HTML5--》details
<details>是HTML5的新标签,用于描述文档或文档某个部分的细节. 目前只有 Chrome 和 Safari 6 支持 <details> 标签. 与 <summ ...