不同对象中的JSON命名约定

时间:2015-11-25 03:29:53

标签: json naming-conventions

我知道以下两个json字符串是有效的,但哪一个可能更好?我认为第二个可以在获取字段名称时显示更多信息,但是,如果我遵循这些命名规则,我担心字段名称可能会很长。我希望有人考虑过这些设计可以给我一些建议,非常感谢!

情况1:

{
  "applicant": {
    "name": "John",
    "age": 30
  },
  "insured": {
    "name": "Marry",
    "age": 25
  }
}

情况2:

{
  "applicant": {
    "applicantName": "John",
    "applicantAge": 30
  },
  "insured": {
    "insuredName": "Marry",
    "insuredAge": 25
  }
}

1 个答案:

答案 0 :(得分:0)

使用较长的表示法:

  • 是多余的
  • 使代码库更加冗长,这会让您在打字时失去更多时间,有时会让您更难阅读
  • 使得重用相同的对象变得更加困难,因为您需要不断重新映射属性(即如果您想拥有相同的applicantinsured,则需要重新映射applicantNameinsuredNameapplicantAgeinsuredAge,以及您可能拥有的其他属性。
  • 使重用任何现有代码更难以操作ApplicantInsured的实例,因为即使字段名称可能具有相同的含义,它们的名称也不相同。

我更喜欢较短的符号,并且只有当我需要一个扁平对象时才会将属性重新映射到较长的符号,这有时在某些MVC / MVVM框架(例如KnockoutJS)中很有用。例如,我会使用:

{
  "applicant": {
    "name": "John",
    "age": 30
  },
  "insured": {
    "name": "Marry",
    "age": 25
  }
}

并将重新映射到:

{
  "applicantName": "John",
  "applicantAge": 30,
  "insuredName": "Marry",
  "insuredAge": 25
}

只有在我需要的时候。

话虽如此,我也会尝试让我的代码中的变量名称易于理解 - 我总是将我的申请人applicantsapplicantsList而不是dataitems所以读取我的代码的每个人(包括我自己)都知道它的含义。