`

JavaScript反射读取Object属性

阅读更多

最近需要用到JS的反射机制读取对象属性,类似Java中的自省,所以写了一个显示对象属性的小函数。

 

函数代码:

var array = new Array();
function showType(obj) {
	for(var i in obj){
		if(typeof(obj[i]) == 'object') {
			showType(obj[i]);
			array.push("Class " + i);
		} else {
			if(typeof(obj[i]) != 'function'){
				array.push("\t" + typeof(obj[i]) + " " + i + " = " +obj[i] + ";");
			}
		}
	}
}

 

调用代码:

			showType(JSONData);
			array.reverse();
			alert(array.join("\n"));
			array = new Array();

 

另外可以通过eval方法使用字符串来读取对象属性,如:

alert(eval("JSONData.settings.animation.enabled"));

 

分享到:
评论

相关推荐

    分享下自己写的js中类似反射的东东

    不过,结合以上信息,我们可以推测博主可能探讨了如何在JavaScript中实现动态属性访问、方法调用、以及可能的类型检查等功能,这些都是反射机制的基本要素。如果需要了解更多细节,建议直接查看给出的博客链接。

    net.sf.json.JSONObject实现Object对象与Json字符串的互转

    在进行JSON与Java对象互转时,需要注意的是,Java对象的属性必须有对应的getter和setter方法,因为`JSONObject`依赖于Java的反射机制来读取和设置属性。此外,`JSONObject`在处理枚举类型时可能需要特别处理,通常会...

    c++反射 类序列化为json

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。在C++中,将类序列化为JSON意味着将类的实例数据转换为JSON字符串,以便于存储、传输或与其他系统...

    打字稿:发出在运行时使用的类型信息(反射).zip

    7. **Reflect.ownKeys()**:返回一个表示给定对象所有自身属性(包括不可枚举属性)的数组,不同于`Object.keys()`。 8. **Reflect.apply()**:类似于`Function.prototype.apply()`,但接受一个函数和一个调用上...

    JavaScript学习方案

    - 创建、读取、更新、删除节点。 - 属性与样式操作。 - 遍历DOM树:父节点、子节点、兄弟节点。 3. **事件处理**: - 事件绑定:`addEventListener()`。 - 常见事件类型:点击、鼠标移动、键盘输入等。 - ...

    Web开发必用javascript技巧

    17. **对象方法**:熟悉Object.keys、Object.values、Object.entries等,方便操作对象属性。 18. **Set和Map数据结构**:用于存储唯一值,提供更好的性能和功能。 19. **ES6类和继承**:了解class关键字,实现面向...

    delphi_BaseObject_json序列化反序列化1

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,因其简洁性和易读性而被广泛应用。 首先,我们需要了解什么是序列化和反序列化。序列化是将对象的状态转换为可存储或可传输的格式,比如JSON字符串...

    RPC框架+json+反射+注解annonation

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。在RPC框架中,JSON常作为数据传输的载体,用于序列化和反序列化对象。例如,当服务消费者请求服务...

    理解JavaScript中的Proxy 与 Reflection API

    通常,JavaScript读取不存在的属性不会抛出错误,而是返回`undefined`。通过`get`陷阱,我们可以自定义这种行为,例如,当尝试访问不存在的属性时抛出错误。`get`陷阱同样接收`trapTarget`、`key`和`receiver`三个...

    C#中任意类型数据转成JSON格式

    在C#编程中,将任意类型的数据转换成JSON(JavaScript Object Notation)格式是一种常见的需求,特别是在处理数据传输和存储时。JSON是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。本文...

    List对象列表 转换Json

    - `GetObjectProperty`方法通过反射获取对象的所有公共属性,然后将属性名和值转换为字符串格式,形如`"propertyName":"propertyValue"`。 - `OneObjectToJson`方法负责将一个对象转换为JSON字符串。它先初始化一个...

    JSON框架学习,非常有用

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,被广泛用于Web应用程序之间传递数据。JSON框架是为了简化JSON解析和生成而设计的工具,它能够帮助开发者高效地处理JSON字符串,将其转换为对象或者...

    各种对象转成JSON字符串.pdf

    对于每个属性,通过反射调用其读取方法获取值,并调用`object2json`方法将其转换为JSON格式,最后添加到JSON对象中。注意,该方法可能抛出异常,如`IntrospectionException`和`IllegalAccessException`等,这些异常...

    华为OD机试C卷- 反射计数(Java & JS & Python & C).md-私信看全套OD代码及解析

    ### 华为OD机试C卷 - 反射计数(多语言实现) #### 题目背景 在本题目中,我们面临的是一个典型的模拟类编程问题,它要求我们根据给定的初始条件(包括二维矩阵、初始位置、初始速度和时间),计算在一个特定的...

    java各种常用的工具类封装 源码

    5. **Json**: JSON (JavaScript Object Notation) 是一种轻量级的数据交换格式。Java中常见的JSON库有Gson、Jackson、Fastjson等,它们提供了解析和生成JSON的功能。比如,`JsonUtil` 可能封装了将Java对象转换为...

    ES6第二天.xmind

    Reflect(反射) 1.作用:用于拦截并操作JavaScript对象的方法 2.提供与Object内置方法相同功能的方法 3.提供更安全的操作 4.作为Proxy的默认操作 ES6字符串的操作方法: 1.字符串的识别: ①includes():...

    Laravel开发-parser

    JSON(JavaScript Object Notation)是另一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。Laravel内置了json_encode和json_decode函数,可以方便地将PHP对象和数组转换为JSON字符串,或者将...

    javafileread源码-Jason-java-class-builder:编写一个程序,该程序读取JSON文件,并根据JSON中的描述生

    - JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,通常用于在客户端和服务器之间传递数据。Java中可以使用`org.json`库(如`JSONObject`和`JSONArray`)或`com.google.gson.Gson`库来解析JSON。...

    java 连接 MongoDB 工具类示例

    - JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。在MongoDB中,每个文档都是一个JSON对象。 2. **Java MongoDB驱动程序**: - MongoDB提供了官方...

    XSS跨站脚本gj剖析与防御

    4. **使用HTTPOnly Cookie**:设置Cookie的HTTPOnly属性,禁止JavaScript访问,降低cookie被盗取的风险。 5. **DOM Sanitization**:对DOM中插入的用户数据进行清洗,避免执行潜在的恶意代码。 6. **X-XSS-...

Global site tag (gtag.js) - Google Analytics