2015-09-19 6 views
2

Я смущен, что означает форма JSON свободной формы. Означает ли это, что вы можете поместить любые типы в значения в {}?В чем разница между свободной формой и несвободной формой JSON?

Я думал, что все JSON такие же (то есть {'hi':123, 'abc':{'d':[1,2,3],'e':'yay'}}).

Так что же означает форма JSON в свободной форме. Является ли это избыточным термином? Есть ли такая вещь, как несвободная форма JSON?

+2

Это поможет, если бы вы могли предоставить контекст, в котором вы видели фразу «freeform JSON». Возможно, различия не существуют, и слово просто используется для акцента (например, для сравнения с XML и другими высокоструктурированными форматами). – Kevin

+0

[Eclipse Bug 407498 - Исключение, исключающее форматирование объекта JSON свободной формы, содержащего массив JSON] (https://bugs.eclipse.org/bugs/show_bug.cgi?id=407498), предполагает, что «свободная форма» подразумевает, что одна или несколько частей объекта могут в то время как «non-freeform» означает отсутствие части изменения объекта (все «поля» остаются присутствующими и могут быть доступны). [Как разрешить данные JSON свободной формы в документах Mongoose?] (Http://stackoverflow.com/q/10403450/539810) также, похоже, предлагает то же самое. –

ответ

1

Что вы только что опубликовали, выглядит как объект JavaScript, но это недействительно JSON. JSON имеет очень строгие правила, такие как все строки должны быть в двойных кавычках. См. JSON.org

Нет такой вещи, как «свободная форма»/«несвободная форма» JSON, поскольку каждая допустимая строка JSON должна быть отформатирована в соответствии с конкретными правилами, упомянутыми на JSON.org.

Возможно, что «свободная форма» JSON - это JSON, который был создан «вручную», что означает, что вы набрали его вручную (с ошибкой). Большинство языков имеют встроенные методы или доступные библиотеки, которые превращают собственные структуры данных (например, многомерные массивы) в действительный JSON.

PHP, например, имеет собственный метод, называемый json_encode.

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