Каков правильный синтаксис для представления подобъектов в JSON? - PullRequest
1 голос
/ 24 марта 2009

У меня есть простой объект, который десериализуется из JSON в объект на стороне сервера.

JSON:

{
   name             : 'ObjectName',
   host             : 'http://localhost',
   ImagesPath       : '/Images/'
}

На стороне сервера вышеупомянутый код JSON десериализуется в этот объект C # с помощью System.Web.Script.Serialization.JavaScriptSerializer:

public class InfoObject
{
    public string Name { get; set; }
    public string Host { get; set; }
    public string ImagesPath { get; set; }
}

В настоящее время все вышеперечисленное работает нормально, но я думал добавить к нему множество свойств. Я хочу добавить подобъекты для хранения дополнительных данных, чтобы не все свойства были в одном длинном классе.

Объект подобъекта:

public class TestSubObject
{
     public string TestString { get; set; }
}

Так что новый объект C # выглядит так:

public class InfoObject
{
    public string Name { get; set; }
    public string Host { get; set; }
    public string ImagesPath { get; set; }
    public TestSubObject MoreInformation {get;set;}
}

Но проблема в том, что я не знаю, как представить инициализацию свойства подобъекта в JSON. Может быть, я упустил что-то очевидное, но поиск в Google не сразу дал ответ.

Я пытался:

{
    name             : 'ObjectName',
    host             : 'http://localhost',
    ImagesPath       : '/Images/',
    MoreInformation.TestString : 'hello world'
}

Но не игра в кости, так как мне правильно написать вышесказанное в JSON?

Ответы [ 2 ]

8 голосов
/ 24 марта 2009

Вы можете написать это так:

{
    Name             : 'ObjectName',
    Host             : 'http://localhost',
    ImagesPath       : '/Images/',
    MoreInformation  : {TestString : 'hello world'}
};

// And to access the nested object property:
obj.MoreInformation.TestString
1 голос
/ 24 марта 2009

JSON сам по себе является нотацией «объект», просто поместите другой объект внутри «объекта»

{
   key: value,
   key2 : { inner_key : value, inner_key2 : value }
}

Как видите, выражение { ... } дает объект

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