当前位置: 首页 > 编程语言 > C#

HowtoconvertjsontoflatstructureinC#Share

时间:2023-04-10 16:17:12 C#

HowtoconvertjsontoflatstructureinC#我正在尝试用C#编写一个将JSON转换为键/值对的函数。它应该支持数组。例如,以下JSON:{title:title_value,components:[{component_id:id1,menu:[{title:menu_title1},{title:menu_title_x},{id:menu_id1}]},{component_id:id2,menu:[{title:menu_title2},{id:menu_id2}]}]}应该翻译成:这是完成这个任务的简单方法吗?当我开始考虑数组和嵌套数组时,逻辑就变得复杂了。我会看看http://json.codeplex.com/我认为这可以满足您的需求。解决方法如下。JavaScriptSerializer从json字符串('json')创建对象('o'),而不是方法BuildVariablesList迭代对象并用结果填充字典('additionalParameters')。以上就是C#学习教程的全部内容:C#中如何将json转为扁平结构。如果对大家有用,需要进一步了解C#学习教程,希望大家多多关注——varjss=newJavaScriptSerializer();varo=returnnewDynamicJsonObject(jss.Deserialize>(json));varadditionalParameters=newDictionary();BuildVariablesList(o.GetInternalDictionary(),"",additionalParameters);privatestaticstringAppendToPathString(stringpath,objectpart){returnpath.Trim().Length==0?part.ToString():路径+'.'+部分;}publicstaticvoidBuildVariablesList(objectobj,stringpath,Dictionaryresult){if(objisArrayList){vararrayObj=objasArrayList;for(vari=0;i){vardictObject=objasDictionary;foreach(varentryindictObject){if(entry.ValueisString&&(path.Trim().Length>0||!ReservedFieldNames.Contains(entry.Key.ToLower()))){result.Add(AppendToPathString(路径,条目。键),条目。值作为字符串);}elseif(entry.ValueisDictionary){BuildVariablesList(entry.ValueasDictionary,AppendToPathString(path,entry.Key),结果);}elseif(entry.ValueisArrayList){BuildVariablesList(entry.ValueasArrayList,AppendToPathString(path,entry.Key),result);}}}}集合不代表位置。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: