反序列化对象
问题描述:
我序列与JavaScriptSerializer类对象,设置参数的控制台应用程序,然后反序列化反序列化对象
public class MyModel
{
public int LoanID { get; set; }
public decimal LoanAmount { get; set; }
public decimal LoanRate { get; set; }
public decimal LoanTerm { get; set; }
public string PIN { get; set; }
public string FullName { get; set; }
}
序列化:
MyModel _model = new MyModel()
{
FullName = "test_FullName",
LoanID = 11110,
LoanAmount = 4000
};
var javaScriptSerializer = new JavaScriptSerializer();
StringBuilder sb = new StringBuilder();
javaScriptSerializer.Serialize(_model, sb);
调用C#控制台应用程序:
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.CreateNoWindow = false;
startInfo.UseShellExecute = false;
startInfo.FileName = @"...exe";
startInfo.WindowStyle = ProcessWindowStyle.Hidden;
startInfo.Arguments = sb.ToString();
using (Process exeProcess = Process.Start(startInfo))
{
exeProcess.WaitForExit();
}
反串行化:
string input = args[0];
var javaScriptSerializer = new JavaScriptSerializer();
var result = javaScriptSerializer.Deserialize<MyModel>(input);
如果我评论“全名=‘test_FullName’”反序列化的作品,但在其他情况下,它会返回错误:无效的JSON原始:test_FullName
答
输入不正确。对于全名的值必须用双引号括起来,例如:
{ “全名”: “test_FullName”, “的LoanID”:11110, “LoanAmount”:4000}
+0
输入参数取自StringBuilder sb,显示在第二代码狙击手 – rashad 2014-11-24 13:20:26
请问你输入究竟是什么样子? – 2014-11-24 13:09:30
这里是input {LoanID:11110,LoanAmount:4000,LoanRate:17,LoanTerm:10,PIN:null,FullName:test_FullName} – rashad 2014-11-24 13:14:23
对不起,这里必须是MyModel,我已经编辑 – rashad 2014-11-24 13:16:33