2016-11-21 2 views
0

Я следующие Json:Неактивированные JSon Ключи

{ 
    "requirements": { 
    "-FileName": "sample.xls", 
    "requirement": [ 
     { 
     "desc": "Employee status  will be classified as: 
• Assigned $ when employee is working on a project. 
• Reserved when employee is scheduled to work on a project in near future. Unassigned when employee is not working on project.", 
     "Id": "Req40" 
     }, 
     { 
     "Id": "NFR-2", 
     "desc": "Team Leader should create resource allocation $% request in Maintain Project Module. Resource allocation request [email protected] associated with only one role. Project [email protected] Manager should provide roll-on date and roll-off date in resource allocation request." 
     }, 
     { 
     "Id": "req2", 
     "desc": "PRMS must always be available except during the & @ scheduled maintenance. Scheduled maintenance must always be at 8PM on week days.", 
     "message": "message of Req3" 
     } 
    ] 
    } 
} 

Я хочу, чтобы проверить, если он содержит Id и DESc теги или ключи в нем.

Я попытался ниже код: -

try 
{      
    var obj = Newtonsoft.Json.Linq.JToken.Parse(strInput); 

    if(obj["Id"]!=null) 
    return true; 
    else 
     return false; 
} 
catch (JsonReaderException jex) 
{ 
    Logger.GetInstance().LogException(jex, jex.StackTrace, Category.General); 
    return false; 
} 

Но этот код дает OBJ [ "Id"] в качестве нуль, даже если Id присутствует в Json.

+3

Ну да, ваш JSON не содержит верхнего уровня 'Id' свойство - он содержит' requirements' свойство, то имеет 'requirement' недвижимость который представляет собой массив других объектов, каждый из которых имеет свойство «Id». –

ответ

1

Вы должны проверить, как это для вашей текущей структуры.

var id = obj["requirements"]["requirement"][0]["Id"]; 

if(id != null) 
    return true; 
else 
    return false; 
+0

или 'return id! = Null;' –

1

Вы можете использовать отражение

JavaScriptSerializer serializer = new JavaScriptSerializer(); 
var obj = serializer.DeserializeObject(json); 

var propery = obj.GetType().GetProperty("Id"); 
if (propery == null) 
    return false; 
else 
    return true; 
Смежные вопросы