Могут ли имена атрибутов объектов JSON быть целыми числами? - PullRequest
3 голосов
/ 18 октября 2011

Я только начинаю с некоторых данных Джексона JSON здесь. Этот раздел доставляет мне неприятности.

"pointData":{
    "1":"32.1093904, 66.7065216", 
    "2":"33.1236854, 67.8128443", 
    "3":"32.9524550, 67.0013501"
}

Мне кажется, что целые числа в качестве имени атрибута недопустимы. Это правильно?

Ответы [ 2 ]

6 голосов
/ 18 октября 2011

Вы правы, что JSON не может иметь целочисленных имен атрибутов, потому что все имена атрибутов JSON должны быть заключены в кавычки, как у вас выше, что делает их строками. Смотрите поток здесь: http://json.org/

Кроме того, приведенная выше структура JSON неверна , поскольку она начинается с имени атрибута, но не с объекта, частью которого является атрибут. Если вы получаете ошибки, вот почему. Юридическая структура будет:

{"pointData":{
    "1":"32.1093904, 66.7065216", 
    "2":"33.1236854, 67.8128443", 
    "3":"32.9524550, 67.0013501"
    }
}

К вашему сведению, если вы храните точечные данные, возможно, лучшая структура будет выглядеть так:

{"pointData":{
    "1": {"x": 32.1093904, "y": 66.7065216}, 
    "2": {"x": 33.1236854, "y": 67.8128443}, 
    "3": {"x": 32.9524550, "y": 67.0013501}
    }
}

Обратите внимание на две вещи об этой структуре:

  1. Каждая точка имеет свойства x и y, которые доступны независимо.
  2. Значения свойств x и y являются числовыми, а не строками.
2 голосов
/ 18 октября 2011

Это не целые числа, это строки. Они являются строками, содержащими символы, которые также используются для представления целых чисел в других контекстах, но, тем не менее, они являются строками, и поэтому это действительно JSON. Из спецификации JSON :

Строка - это последовательность из нуля или более символов Юникода, заключенная в двойные кавычки с использованием обратной косой черты.

Что-то подобное не будет действительным JSON:

{ 1:"32.1093904, 66.7065216", 
  2:"33.1236854, 67.8128443", 
}

... потому что здесь символы не заключены в двойные кавычки, и поэтому недопустимые ключи в JSON.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...