"".equals--双引号的equals是啥意思?跪求解释

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了"".equals--双引号的equals是啥意思?跪求解释相关的知识,希望对你有一定的参考价值。

java代码的话" "和里面的字符串代表的是一个String对象,equals是方法,将字符串与指定的对象比较,具体用法是x.equals(y)
x,y都是object类的,可以是具体的对象类,例如String,你的就是一个String对象和后面equals括号里面的对象作对比,具体规则如下:

指示其他某个对象是否与此对象“相等”。
equals 方法在非空对象引用上实现相等关系:

自反性:对于任何非空引用值 x,x.equals(x) 都应返回 true。
对称性:对于任何非空引用值 x 和 y,当且仅当 y.equals(x) 返回 true 时,x.equals(y) 才应返回 true。
传递性:对于任何非空引用值 x、y 和 z,如果 x.equals(y) 返回 true,并且 y.equals(z) 返回 true,那么 x.equals(z) 应返回 true。
一致性:对于任何非空引用值 x 和 y,多次调用 x.equals(y) 始终返回 true 或始终返回 false,前提是对象上 equals 比较中所用的信息没有被修改。
对于任何非空引用值 x,x.equals(null) 都应返回 false。
Object 类的 equals 方法实现对象上差别可能性最大的相等关系;即,对于任何非空引用值 x 和 y,当且仅当 x 和 y 引用同一个对象时,此方法才返回 true(x == y 具有值 true)。

注意:当此方法被重写时,通常有必要重写 hashCode 方法,以维护 hashCode 方法的常规协定,该协定声明相等对象必须具有相等的哈希码。

你可以去下个中文版jdk 1.6 api 里面所有类和方法还有接口,你都能查
参考技术A equals是判断相等方法,"".equals()的括号中内容如果也是空字符串,那么就返回true 参考技术B "".equals()是字符串的一个方法,括号里传入一个参数,对比两个字符串是否相等。 参考技术C 是“”.equals("xx");吗表示空字符串和xx是否相等,相等返回true 参考技术D 代表空字符串。

JSON Key 用双引号 "" 和根本没有双引号有啥区别? [复制]

【中文标题】JSON Key 用双引号 "" 和根本没有双引号有啥区别? [复制]【英文标题】:What's the difference of JSON Key to be surrounded with double quote "" and no double quote at all? [duplicate]JSON Key 用双引号 "" 和根本没有双引号有什么区别? [复制] 【发布时间】:2018-06-19 17:39:46 【问题描述】:

这是我的打字稿对象:


      first_name:"test",
      last_name: "test",
      birthdate:"2018-01-08T16:00:00.000Z",
      contactNumber: "12312312312",
      email:"test@test.com",
      username:user."test",
      password: user."test"

VS


    "first_name":"test",
    "last_name": "tests",
    "birthdate":"2018-01-08T16:00:00.000Z",
    "contactNumber": "31231232131",
    "email":"email@gmail.com",
    "username":"test",
    "password":"test1234"

每次我使用 Angular 5 通过 HTTP POST 发送它时。我的 API 端总是有错误。

这是错误。

不允许的参数::first_name, :last_name, :birthdate, :contactNumber, :user

当我为所有键添加双引号时,它工作正常。

【问题讨论】:

不要将 JavaScript 对象(与 Typescript 对象相同)与 JSON 混合 @Pac0 因此,通过将数据传递给 API 而不是传递对象(Typescript 对象),我将创建一个 json 对象并填充它。这可以接受吗?谢谢! 这正是通常的做法。在这方面 Typescript 和 Javascript 没有区别。在 Angular5 中,如果您使用 HttpClient 来执行您的请求,那么 JSON 和实际 javascript 代码对象之间的序列化/反序列化已经为您完成了。 angular.io/guide/http#httpclient 。否则你应该使用 JSON.stringify(yourObject) ***.com/questions/4162749/… 另外,正如另一个答案已经指出的那样,JSON 是一个字符串,必须用引号括起来。 【参考方案1】:

答案在JSON website 上的第一幅图中:对象键必须在 JSON 中编码为字符串。如果它们是标识符(不是字符串),那么它不是 JSON,而是文字 Javascript 对象。

处理 API 请求的 Ruby 库似乎可以正确理解您发送的数据(Javascript 对象)并将密钥转换为 Ruby 符号。验证代码期望键是字符串(因为它们是从有效的 JSON 解码的),因此会出现错误消息。

【讨论】:

【参考方案2】:

根据 JSON 规范(请参阅 http://json.org),您必须用双引号将键括起来。

一个JSON object包含一组字符串/值对,strings定义如下:

字符串是零个或多个 Unicode 字符的序列,用双引号括起来,使用反斜杠转义。

这样你就可以使用保留关键字作为键,如


    "function": "sqrt"

基本上,键没有被双引号括起来的“JSON”代码不是有效的 JSON。

【讨论】:

以上是关于"".equals--双引号的equals是啥意思?跪求解释的主要内容,如果未能解决你的问题,请参考以下文章

Python-json的双引号被自动转为单引号

在双引号内转义双引号

SQL查询语句中单引号和双引号的问题

SQL查询语句中单引号和双引号的问题

Java:想要解析JSON,但是遇到好多双引号,该如何处理

sed 替换 (替换掉双引号)