JSON,对象和类混淆
JSON, Object & Class confusion
我最近读了很多关于JSON和JavaScript对象的文章。但是我变得越来越困惑,对我来说,他们经常看起来是一样的。
我创建了一个JavaScript类,我将其实例化为这样的对象:
function Person(Name, Lastname, Age, sGender)
{
this.Name = Name;
this.Lastname = Lastname;
this.Age = Age;
this.sGender = sGender;
}
var person = new Person(
$('#PersonName').val(),
$('#PersonLastName').val(),
$('#PersonLastName').val(),
$('#PersonAge').val(),
$("#gender input[type='radio']:checked").val()
);
#PersonName 等来自我的 HTML 输入框。在这一部分,我知道我在做什么。
但后来我读到了一种更简单的创建对象的方法,所以我试了一下:
var oPerson =
{
"Name": $('#PersonName').val(),
"Lastname": $('#PersonLastName').val(),
"Age": $('#PersonAge').val(),
"sGender": $("#gender input[type='radio']:checked").val()
}
aPeople.push(oPerson);
return oPerson;
但是现在我对上面的代码感到非常困惑。这是JSON还是只是一个JavaScript对象?
我希望你们中的一些聪明人能为我阐明这一点。 :)
JSON = JavaScript Object Notation。也就是说,JSON 是 JavaScript 对象的文本表示形式。JSON 表示法恰好与 JavaScript 对象具有相同的语法(或者至少是 JavaScript 对象的样式)。
任何时候你在 JavaScript 中创建一个对象(如上面的代码所示),它就是一个 JavaScript 对象。当你将 JavaScript 对象作为文本传输时,你可以使用 JSON 表示法,这在 JavaScript 中非常自然。但您也可以使用替代格式,例如 XML 甚至专有格式。
但JSON只是一个对象的表示。当它在代码中时,它是一个实际的对象。
第一个示例创建一个类Person
并将其实例化为Person
对象。第二个示例只是创建一个对象文字,它只是一个普通的 Javascript 对象。
以上都不是 JSON,它是数组或对象的字符串表示形式。例如,这是 JSON:
var json = '{ "Name": "John", "LastName" : "Adnaves" }';
正如你所看到的,它非常类似于Javascript对象,但关键点是它是一个字符串。
第二种情况称为对象文字表示法,它的语法如下所示:
{
propertyName: value;
propertyName2: value,
.
.
propertyNameN: value
}
您提到的第一种情况为 Person
创建一个类,或者更准确地说:它是一个用于创建 Person
实例的构造函数。
当您想要创建继承功能并相互共享公共属性的对象时,它非常有用。
JSON *(正如@Pete所说)是 Javascript 对象表示法。
它的语法与对象文字非常相似,但有些事情是JSON无法表示的(对象文字表示法可以做到这一点),如函数,RegExps对象,无穷大,NaN,未定义等。
换句话说,JSON 是对象的字符串表示形式,它用于在不同的计算机上传输该对象(主要是其属性,如果需要的话,可以说是状态)。
- jQuery匹配JSON对象的部分文本
- 如何在Javascript中将JSon对象转换为数组
- 我可以在json对象中添加一个函数吗
- 使用JS将数组转换为json对象
- 我应该如何将响应数据保存在对象(json)中以获得更好的操作和性能
- 用javascript从列表对象(JSON的)构建diffrent选项卡
- php请求带有多个对象json-jquery
- AngularJS,过滤器:如何将一个巨大的对象(JSON)变成一个数组
- 动态属性对象 - JSON
- JavaScript 对象 (JSON) 中的动态设置值
- 从数组查询获取对象 JSON 值时出错
- 使用jQuerygetJSON将多维对象JSON转换为HTML
- 需要从 Angular JS 应用程序中的另一个 JSON 对象数组填充 JSON 数组的每个对象 JSON 对象数组
- 嵌套对象JSON排序JavaScript
- PHP在MySQL中保存来自Javascript的对象"JSON.stringify"通过Ajax
- 将JavaScript对象/ JSON转换为PHP数组
- JSON对象.JSON对象内部
- 访问对象的对象- JSON API
- 数组到对象JSON
- Message":"传入的无效对象(JSON数据格式化问题)