Проверьте использование ключа JSON

1

У меня есть json файл, который я использую через пару связанных репозиториев кода (это языковой файл для использования с react-intl)

Он значительно увеличился с течением времени (несколько сотен ключей), и мы хотим его убрать.

Есть ли какой-либо быстрый способ определить, не используется ли какой-либо из ключей?

файл выглядит следующим образом:

{
  "Account.AdditionalInformation": "Additional contact information",
  "Account.Address": "Address",
  "Account.Billing": "Billing details",
  "Account.BillingName": "Billing name",
  "Account.BillTo": "Bill to",
  "Account.BillTo.Company": "A company",
  "Account.BillTo.Me": "Me",
  "Account.CompanyName": "Company name",
  "Account.CompanyMember": "has added you to their corporate account",
  "Account.Department": "Department",
  "Account.Email": "Email address",
  "Account.EmailVerified": "Thank you for verifying your email!",
  "Account.EssentialContact": "Essential contact details",
  "Account.FamilyName": "Surname",
  "Account.GivenName": "First name",
  "Account.JobTitle": "Job title",
  "Account.Phone": "Phone number",
  "Account.Sector": "Industry sector",
  "Account.Title": "Title",
  "Account.Title.Female": "Mrs",
  "Account.Title.Male": "Mr",
  //.. and so on 
}
  • 0
    Нет, простого пути нет. Давайте представим, что ключи создаются динамически, например, 'Account.' + 'Family' + 'Name' . Если вы посмотрите в исходном коде Account.FamilyName будет трудно найти, был ли размещен такой процесс.
  • 0
    Большинство ключей не создаются динамически - форматирование просто навязывает некоторый порядок хаосу, который является json;) Есть пара ключей, таких как "Order.Dialect.en-uk", где последняя часть является переменной но их было бы легко заметить в любом обзоре
Теги:
react-intl

1 ответ

0

Создайте функцию и используйте hasOwnProperty чтобы проверить, есть ли у этого объекта какой-либо ключ от этого имени. Для этого вам нужно получить содержимое json файла в переменной

var myJSON = {
  "Account.AdditionalInformation": "Additional contact information",
  "Account.Address": "Address",
  "Account.Billing": "Billing details",
  "Account.BillingName": "Billing name",
  "Account.BillTo": "Bill to",
  "Account.BillTo.Company": "A company",
  "Account.BillTo.Me": "Me",
  "Account.CompanyName": "Company name",
  "Account.CompanyMember": "has added you to their corporate account",
  "Account.Department": "Department",
  "Account.Email": "Email address",
  "Account.EmailVerified": "Thank you for verifying your email!",
  "Account.EssentialContact": "Essential contact details",
  "Account.FamilyName": "Surname",
  "Account.GivenName": "First name",
  "Account.JobTitle": "Job title",
  "Account.Phone": "Phone number",
  "Account.Sector": "Industry sector",
  "Account.Title": "Title",
  "Account.Title.Female": "Mrs",
  "Account.Title.Male": "Mr",
  //.. and so on 
}

function checkKey(keyName) {

  if (myJSON.hasOwnProperty(keyName)) {

    alert(keyName + " Exists")
  }
}
checkKey('Account.Address')
  • 0
    Хм. Я думаю, что на самом деле мне нужно пойти глубже и поискать исходный код для каждого из этих ключей. Например, форма может иметь что-то вроде строк <Field component={TextField} name="familyName" label="Account.FamilyName" validate={required} showErrorBeforeTouched />

Ещё вопросы

Сообщество Overcoder
Наверх
Меню