0

Просматривая форумы, и ни одно из решений, которые я видел, не работало для моего случая, если я не ошибаюсь. Я пытаюсь перечислить данные для разных состояний, связанных с плагином карты jQuery. В основном пользователь нажимает состояние, и законы штата будут добавляться под карту. Сейчас моя JSON дерево выглядит следующим образом:Трассировка вложенных объектов Литеральные данные

var states = { 
    "AL" : { 
     "longname" : "Alabama", 
     "lawOne" : "Text for Law 1", 
     "lawTwo" : "Text for Law 2", 
     "lawThree" : "Text for Law 3" 
    }, 
    "AK" : { 
     "longname" : "Alaska", 
     "lawOne" : "Text for Law 1", 
     "lawTwo" : "Text for Law 2", 
     "lawThree" : "Text for Law 3" 
    }, 
    etc... 
} 

Используя ответ на вопрос here, я могу погрузиться в 2-й уровень вложен данных, но точка входа для государства, кажется, задержать. Мне нужно имя сокращенного состояния, потому что это данные, которые API карты вырывает при щелчке по состоянию. Любая идея о том, какие другие шаги могут потребоваться для реализации этой работы? Кажется, что нет ответа на поиск объекта внутри объекта. Заранее спасибо!

EDIT: Я нашел точный ответ, который искал, как только я понял, что я неуклюж, и что это был Object Literal, а не JSON. Я нашел ответ here

+1

Это не JSON. Это литерал объекта JavaScript. Условия не взаимозаменяемы. –

+0

Спасибо. Я обновил вопрос и разместил ответ, который я нашел –

ответ

2

Вам нужно всего лишь использовать Object.keys(), чтобы получить сокращенное имя, которое определено как свойства объекта state.

var states = { 
 
    "AL" : { 
 
     "longname" : "Alabama", 
 
     "lawOne" : "Text for Law 1", 
 
     "lawTwo" : "Text for Law 2", 
 
     "lawThree" : "Text for Law 3" 
 
    }, 
 
    "AK" : { 
 
     "longname" : "Alaska", 
 
     "lawOne" : "Text for Law 1", 
 
     "lawTwo" : "Text for Law 2", 
 
     "lawThree" : "Text for Law 3" 
 
    } 
 
} 
 

 
console.log(Object.keys(states))

+0

Это заставляет меня подсвечивать состояния в массиве, но как бы я мог бы сосредоточиться на одном (динамически) и захватить значение изнутри заданного состояния? –

2

Вы можете итерацию и получить короткое имя, как это:

var states = { 
    "AL" : { 
     "longname" : "Alabama", 
     "lawOne" : "Text for Law 1", 
     "lawTwo" : "Text for Law 2", 
     "lawThree" : "Text for Law 3" 
    }, 
    "AK" : { 
     "longname" : "Alaska", 
     "lawOne" : "Text for Law 1", 
     "lawTwo" : "Text for Law 2", 
     "lawThree" : "Text for Law 3" 
    } 
} 

for (var key in states) { 
    if (states.hasOwnProperty(key)) { 
    var val = states[key]; 
    console.log(key + ':' + val.longname); 
    } 
} 

JSFiddle: https://jsfiddle.net/12bor11u/1/

+1

Я верю, что это больше похоже на то, что я ищу. Единственная проблема заключается в том, что аббревиатура государства носит динамический характер, и мне нужно будет выяснить, как динамически вводить эти данные. Это на меня, чтобы понять, хотя. Я ценю начальную голову! –

Смежные вопросы