MongoDB - обнаружение наличия вложенных элементов JSON в коде - PullRequest
0 голосов
/ 20 апреля 2011

Если я загрузил следующий json в документ BSON:

{
    "contact":
    { "firstname":"Pete"
        ,"surname":"Jones"
        ,"company":[{"name":"Virgin","notes":"some virgin notes"},{"name":"IBM","notes":"a great big IT company"}]
    }

    ,"response":
    {
        "_id":"123"
        ,"profileid":"567"
        ,"localdate":"12 Apr 2011 14:34:23"
    }
}

Я могу определить, существует ли данный элемент, используя это:

if (suppliedDoc.Contains("_id"))

, но я не могу обратитьсявложенный элемент, использующий этот синтаксис:

if (suppliedDoc.Contains("response._id"))

Каков правильный синтаксис для адресации вложенных элементов?И есть ли лучший способ обнаружить наличие корневых или вложенных элементов?Я использую официальный драйвер C #.Благодарю.

1 Ответ

1 голос
/ 20 апреля 2011

Вы, вероятно, ищете что-то вроде

if (suppliedDoc.Contains("response")
    && suppliedDoc["reponse"].AsBsonDocument.Contains("_id"))
{
    //...
}

, что, как я согласен, немного неловко.

Хотя для написания метода расширения для * 1006 не потребуется слишком много усилий* который берет строку с пунктуацией в ней, разбивает ее на . и сверлит, используя метод, показанный выше.

...