将JSON反序列化为JAVASCRIPT对象
deserialize JSON to JAVASCRIPT object
我有一个问题来反序列化JSON文本到一个javascript对象,我测试jquery和yui库,我有这个类:
function Identifier(name, contextId) {
this.name = name;
this.contextId = contextId;
}
Identifier.prototype.setName = function(name) {
this.name = name;
}
Identifier.prototype.getName = function() {
return this.name;
}
Identifier.prototype.setContextId = function(contexId) {
this.contextId= contexId;
}
Identifier.prototype.getContextId = function() {
return this.contextId;
}
我有这个JSON:
{
"Identifier": {
"name":"uno",
"contextId":"dos"}
}
我想解析创建一个标识符对象,我的问题是这句话:
var obj = jQuery.parseJSON('{"Identifier": { "name":"uno","contextId":"dos"}}');
或
var obj2 = JSON.parse('{"Identifier": { "name":"uno","contextId":"dos"}}');
不工作,var obj和obj2不是一个标识符对象,我怎么能解析这个?由于
这个问题不是重复的,因为它比Michael标记为重复的问题早5年。
您可以创建一个函数来初始化这些对象。下面是我快速起草的:
function parseJSONToObject(str) {
var json = JSON.parse(str);
var name = null;
for(var i in json) { //Get the first property to act as name
name = i;
break;
}
if (name == null)
return null;
var obj = new window[name]();
for(var i in json[name])
obj[i] = json[name][i];
return obj;
}
这将创建一个由第一个属性的名称表示的类型的对象,并根据第一个属性的对象的属性分配它的值。你可以这样使用:
var identifier = parseJSONToObject('{"Identifier": { "name":"uno","contextId":"dos"}}');
console.log(identifier);
<<p> 生活例子/strong> 相关文章:
- Chrome开发工具(如何知道我在调用哪个javascript对象)
- 循环遍历以数组为值的Javascript对象
- 从ajax请求中获取javascript对象
- 如何从对象的原型方法访问JavaScript对象属性
- 将XML转换为普通的旧JavaScript对象
- 通过引用传递JavaScript对象
- javascript对象操作:根据指定条件选择属性
- Javascript对象类在单击时打开窗口进行颜色选择,并在更改时替换对象背景颜色
- 如何在异步函数中使用javascript对象
- 临时Javascript对象
- 如何在ASP中为用户控件添加Javascript对象网
- 使用数组向下搜索Javascript对象
- Rails将JavaScript对象存储到Model的有效方式
- JavaScript对象不是从原型链继承的
- 如何创建具有默认值的JavaScript对象字段?(AngularJS模型相关)
- SetInterval在javascript对象中表现怪异
- Javascript 对象和 this 关键字
- 如何在不知道关键字的情况下访问javascript对象值
- 在 JavaScript 对象中设置要使用的运算符的属性
- 如何搜索JavaScript对象并更改值