Использование Microsoft WebAPI 2 (который использует третью партию Json.NET библиотеку), скажем, я возвращаюсь следующий people
массив:
var p1 = new Person("Alice");
var p2 = new Person("Bob");
p1.Sibling = p2;
p2.Sibling = p1;
var people = new[] { p1, p2 };
Чтобы избежать циклических ссылок, то Json.NET выводит следующий JSON:
[
{
"$id":"1",
"Name":"Alice",
"Sibling":{
"$id":"2",
"Name":"Bob",
"Sibling":{
"$ref":"1"
}
}
},
{
"$ref":"2"
}
]
Javascript's JSON.parse() метод ничего не знает об этом синтаксисе. Я просмотрел спецификацию JSON, и я вижу использование ключевого слова $ ref в указателях, но я не вижу, чтобы они использовали ключевое слово $ id. Это что-то причудливое в Json.NET? Или это что-то в спецификации JSON, которая просто не поддерживается широко?
является JSON JSON. это просто ключи: значения, насколько это необходимо. то, что представляют эти ключи/значения, соответствует коду, который создает структуру данных, которая в конечном итоге кодируется в json. Сам json не мог заботиться, если ключ - это «id», «id» или «foobar». то, что у вас есть, совершенно справедливо json. массив, содержащий два объекта, содержащий дополнительные под-данные. –