Linq查询JObject我是用Json.net进行序列化,然后创建一个JObject,长这样:"RegistrationList":[{"CaseNumber":"120654-1330","Priority":5,"PersonId":7,"Person":{"FirstName":"","LastName":"",},"UserId":7,"User":{"Id":7,"CreatedTime":"2013-07-05T13:09:57.87","Comment":"",},如何查询新对象或列表,这很容易放入某些html表/视图中。我只想显示CaseNumber、FirstName和Comment。我只想显示CaseNumber、FirstName和Comment。与ASP.NETMVC一样,您首先要编写一个符合您要求的视图模型:publicclassMyViewModel{publicstringCaseNumber{get;放;}publicstringFirstName{get;放;}publicstringComment{get;放;然后在你的控制器操作中,你从你已经拥有的JObject实例构建视图模型:publicActionResultIndex(){JObjectjson=...你的问题中显示的JSON问题是无效的JSON)IEnumerablemodel=fromitemin(JArray)json["RegistrationList"]selectnewMyViewModel{CaseNumber=item["CaseNumber"].Value(),FirstName=item["Person"]["FirstName"].Value(),Comment=item["User"]["Comment"].Value(),};返回视图(模型);}最后在强类型视图中显示需要的信息:@modelIEnumerableCasenumberFirstnameComment@foreach(variteminModel){@item.CaseNumber@item.FirstName@item.Comment}几种方式:1)根据文档“UsingLINQforJSON”,您可以以LINQ方式查询JObjectJObjecto=JObject。Parse(@"{'CPU':'Intel','Drives':['DVD读/写器','500GB硬盘']}");stringcpu=(string)o["CPU"];//IntelstringfirstDrive=(string)o["Drives"][0];//DVD读/写器IListallDrives=o["Drives"].Select(t=>(string)t).ToList();//DVD读写器//500G硬盘2)使用SelectToken查询JSON3)使用自定义帮助程序扩展方法按指定路径查询,如下所示说明:publicstaticclassJsonHelpers{publicstaticJTokenQueryJson(thisobjectjsonObject,paramsstring[]jsonPath){conststringseparator="->";if(jsonObject==null)thrownewException(string.Format("Cannot执行JSON查询“{0}”,因为对象为空。;vartoken=json;varcurrentPath="";if(jsonPath!=null)foreach(varlevelinjsonPath){currentPath+=level+separator;token=token[level];if(token==null)break;}if(token==null)thrownewException(string.Format("Cannotfindpath'{0}'inJSONobject:{1}",currentPath,json));返回令牌;我认为您需要以下JSON字符串:{'RegistrationList':[{'CaseNumber':'120654-1330','Priority':5,'PersonId':7,'Person':{'FirstName':'0','LastName':'',},'UserId':7,'User':{'Id':7,'CreatedTime':'2013-07-05T13:09:57.87','Comment':''}},{'CaseNumber':'120654-1330','Priority':5,'PersonId':7,'Person':{'FirstName':'0','LastName':'',},'UserId':7,'User':{'Id':7,'CreatedTime':'2013-07-05T13:09:57.87','Comment':''}},]}就这样就可以了下面代码解决你的问题:以上是C#学习教程:Linq查询JObject分享的所有内容,如果对大家有用还需要详细了解C#学习教程,希望大家多多关注——stringjson=@"{'RegistrationList':[{'CaseNumber':'120654-1330','Priority':5,'PersonId':7,'Person':{'FirstName':'0','LastName':'',},'UserId':7,'User':{'Id':7,'CreatedTime':'2013-07-05T13:09:57.87','Comment':''}},{'CaseNumber':'120654-1330','Priority':5,'PersonId':7,'Person':{'FirstName':'0','LastName':'',},'UserId':7,'User':{'Id':7,'CreatenTime':'2013-07-05T13:09:57.87','Comment':''}},]}";JObjecto=JObject.Parse(json);JArraylist=(JArray)o["RegistrationList"];List>rList=newList>();foreach(varrinlist){Tupletemp=newTuple(r["CaseNumber"].Value(),r["Person"]["FirstName"].Value(),r["User"]["Comment"].Value());rList.Add(temp);Console.WriteLine(temp);}varserializer=newJavaScriptSerializer();objectmodelData=serializer.DeserializeObject(jsonstring));本文收集自网络,不代表立场,如涉及侵权,请点击右边联系管理员删除,如需转载请注明出处:
