C# asp.net json序列化程序添加反斜杠\&引用;我的财产
我有一个如下所示的对象模型:C# asp.net json序列化程序添加反斜杠\&引用;我的财产,c#,asp.net,json,C#,Asp.net,Json,我有一个如下所示的对象模型: public class MyObjectModel { public int1 {get;set;} public int2 {get;set;} [ScriptIgnore] public int3 {get;set;} } "{\"int1\":31,\"int2\":5436}" 在我的代码中,我写了以下内容: MyObjectModel TheObject = new MyObjectModel(); TheObject = Lo
public class MyObjectModel
{
public int1 {get;set;}
public int2 {get;set;}
[ScriptIgnore]
public int3 {get;set;}
}
"{\"int1\":31,\"int2\":5436}"
在我的代码中,我写了以下内容:
MyObjectModel TheObject = new MyObjectModel();
TheObject = LoadFromQuery(); //populates the properties using a linq-to-sql query
JavaScriptSerializer MyObjectSerializer = new JavaScriptSerializer();
string TheObjectInJson = MyObjectSerializer.Serialize(TheObject);
当我查看json字符串TheObjectInJson时,结果如下所示:
public class MyObjectModel
{
public int1 {get;set;}
public int2 {get;set;}
[ScriptIgnore]
public int3 {get;set;}
}
"{\"int1\":31,\"int2\":5436}"
序列化程序向每个属性添加反斜杠。我尝试在类定义上方添加和删除[Serializable]属性,但没有成功
有什么建议可以解释为什么会发生这种情况吗
谢谢。那应该是正确的。将JSON发送回浏览器时,所有属性名称必须用引号括起来。您看到的反斜杠是VisualStudio在查看字符串时转义字符串(我希望,您在看到这一点时没有提到) 如果你真的在电线上发送数据,它应该是
{"int1": 31, "int2":5436}
这是正确的JSON表示法
有关JSON表示法的示例,请参阅。在控制器中,将对象的类型(不是字符串!)作为JsonResult返回,即:
[HttpGet]
public JsonResult<MyObjectModel> GetMyObject()
{
var theObject = LoadFromQuery(); //populates the properties (however)
return Json(theObject);
}
[HttpGet]
public JsonResult GetMyObject()
{
var theObject=LoadFromQuery();//填充属性(但是)
返回Json(对象);
}
好的,你说得对,当我将字符串放入文本中并查看页面上的内容时,我看到json数据格式正确。我正在查看VS调试器。嗨,真让人困惑!是的!你最终会习惯的。下次在调试器中查看字符串时,按放大镜旁边的向下箭头并选择“文本可视化工具”,它将正确显示。