我正在尝试动态地进行JSON模式验证。我们从上传的文件中获取JSON并尝试验证这是否是完全JSON。这是一个On premise应用程序。我不能使用JSON.net。我无法安装任何其他第三方工具来验证这一点。我尝试了两种方法,如下所示。
1.我使用System.Web.Helper并使用以下代码,我收到错误
代码:
var jsonstring =“{\”user \“:{\”name \“:\”asdf \“,\”age \“:\”26 \“,\”teamname \“:\”b \“ ,\ “电子邮件\”:\ “C:\”,\ “的玩家\”:[\ “1 \”,\ “2 \”]}}“;
var jsonObject = Json.Decode(jsonstring);
Error is "Attempt by method 'System.Web.Helpers.Json.Decode(System.String)' to access field 'System.Web.Helpers.Json._serializer' failed"。我搜索了解决方案,发现我们需要在解决方案的调试属性中取消选中一个复选框。但这只适用于我的控制台应用程序。但不能在我们的VS 2012解决方案中使用。有什么方法可以解决这个问题吗?
JavaScriptSerializer serializer = new JavaScriptSerializer();
string inputContent;
StreamReader inputStreamReader = new StreamReader(FileUploadControl.PostedFile.InputStream);
inputContent = inputStreamReader.ReadToEnd();
inputContent = inputContent.Replace(“\ r”,“”)。Replace(“\ n”,“”)。Replace(“\ t”,“”);
var objJson = serializer.Deserialize>(inputContent);
但是当我试图获得这个结果键值对的值时,我得到的错误就像在图像中一样。错误是Dynamic operations can only be performed in homogenous AppDomain。为此,找到的解决方案是在web.config文件中将属性“legacyCasModel = true”更改为“legacyCasModel = false”。但由于这是OnPremise应用程序,我无法更改此属性。请帮助。
答案 0 :(得分:0)
建议您查看此stackoverflow post
简而言之,您想要做的是:
'{' or '['
JToken.Parse
解析JSON字符串(如果有)
解析时只需记录或显示给最终用户并继续前进!你是公正的
试图验证JSON字符串不试图正确清理它?PS:请参考链接的问题以获取更多详细信息。