2013-04-25 4 views
0

У меня есть документ что-то вроде этогоПолучение определенного значения из определенного ключа Документа внутри документа

{ "_id": { "$oid" : "51776bca40bcc60038000001" }, 
"username": "domi55", 
"Password": "test", 
"Character": { "Job": "Warrior", 
       "Level": 1, 
       "Skill": { "SkillID": "1001", 
          "SkillName": "Blade Dance", 
          "LevelRequirment": 1 
         } 
       } 
      } 
} 

Как я получаю «работу» и значение «SkillName» в C#? Я использую MongoDB и MongoDB C# Driver

+0

Что вы пробовали? Документы (http://docs.mongodb.org/ecosystem/tutorial/use-csharp-driver/#csharp-driver-tutorial) охватывают это очень хорошо. Вы можете использовать объекты BsonDocument или строго типизированные. – WiredPrairie

+0

Я использую его, но все же он не может получить меня «Job», вместо этого он дает мне весь «Символ» «Документ, включая его« Умение ». Документ – Diom

+0

Измените свой вопрос, включив в него то, что у вас есть попробовав пожалуйста. – WiredPrairie

ответ

1

Использование Json.Net

dynamic obj = JsonConvert.DeserializeObject(yourDoc); 
Console.WriteLine("{0} {1}", obj.Character.Job, obj.Character.Skill.SkillName); 

или с помощью JavaScriptSerializer

var obj = new JavaScriptSerializer().Deserialize<dynamic>(json); 
Console.WriteLine("{0} {1}",obj["Character"]["Job"],obj["Character"]["Skill"]["SkillName"]); 
+0

так с вне json.net, я не мог получить значение? – Diom

+0

@Diom см. Обновленный ответ. – I4V

+0

Мне нужно спросить: 'JsonConvert.DeserializeObject (yourDoc)' дает мне ошибку, потому что он не принял 'yourDoc', но принимает тип данных' string' – Diom

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