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

使用WebMatrixAssistant进行C#JSON解码Share

时间:2023-04-11 00:18:13 C#

C#JSONDecodingUsingWebMatrixAssistant我一直在寻找一种将JSON对象转换为动态对象的巧妙方法。(我可以转换为一个对象,但TwitterStreamingAPI实际上发送了两个不同的JSON对象,可能具有未来的对象类型!)我当前使用的代码来自:DeserializeJSONtoC#dynamicobject?但这不是最干净的代码,我在玩WebMatrix并注意到它们有一个很好的JSON.Decode(string)和JSON.Encode(object)方法,并想利用它们。http://msdn.microsoft.com/en-us/library/system.web.helpers.json(v=vs.99).aspx将对System.Web.Helpers的引用添加到我设法编译的C#控制台应用程序一个调用JSON.Decode的解决方案但是......它抛出了一个讨厌的异常。这可能取决于我以无意的方式(在WebMatrix之外)使用它,但有什么想法吗?可能会期待一个没有那种愚蠢的简单答案;-)尝试通过方法“System.Web.Helpers.Json.Decode(System.String)”访问字段“System.Web.Helpers.Json._serializer”失败。我正在使用VS2010。更多详细信息:System.FieldAccessException被方法“System.Web.Helpers.Json.Decode(System.String)”捕获消息=尝试访问字段“System.Web.Helpers.Json._serializer”失败。Source=System.Web.HelpersStackTrace:位于C:UsersAdministrator文档visualstudio2010ProjectsISMMComponentsDataCollectionConvertTwitterStream.cs中Components.DataCollection.ConvertTwitterStream.ConvertTweets()的System.Web.Helpers.Json.Decode(Stringvalue):第35行的InnerException:为了支持jbtule的回答,JsonFxv2(http://github.com/jsonfx/jsonfx)使这变得容易。下面的示例显示了一个完整的往返行程,其中动态对象是从JSON字符串构建的,然后序列化为JSON。stringinput="{"foo":true,"array":[42,false,"Hello!",null]}";动态值=newJsonReader().Read(input);//验证它是否有效Console.WriteLine(value.foo);//trueConsole.WriteLine(value.array[0]);//42Console.WriteLine(value.array.Length);//4stringoutput=newJsonWriter().Write(value);//验证它是否有效Console.WriteLine(output);//{"foo":true,"array":[42,false,"Hello!",null]}启用VisualStudio主机进程(默认在下方),调试对'Json.Decode'的调用失败。我发现它适用于禁用或没有调试器的托管进程。可以按照此处所述为您的项目禁用托管过程:http://msdn.microsoft.com/en-us/library/ms185330.aspxJsonFx支持多种将json绑定到.net对象(包括动态对象)的策略。https://github.com/jsonfx/jsonfx我不记得Json.NET是否支持动态对象,但似乎您可以通过一些额外的自定义编码来实现。http://json.codeplex.com/http://weblogs.asp.net/britchie/archive/2010/08/05/json-net-dynamic-extensions.aspxMicrosoft已将Json添加到WebMatrixBeta2帮助程序班级。在控制台应用程序中使用Json.Decode时,示例代码http://www.mikesdotnetting.com/Article/160/WebMatrix-Working-With-The-JSON-Helper似乎存在特权问题。右键单击您的EXE和“以管理员身份运行...”,它应该可以工作。我不确定是否有办法强制VisualStudio以管理员身份运行可执行文件以进行调试。以上就是《C#学习教程:使用WebMatrixAssistant进行C#JSON解码分享》。如果对你有用,需要进一步了解《C#学习教程》,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: