在C#控制台应用程序中反序列化对象

时间:2014-11-24 13:05:10

标签: c# json serialization

我用JavaScriptSerializer类序列化对象,为Console App设置参数然后反序列化

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);

如果我评论'FullName =“test_FullName”'反序列化有效,但在其他情况下它会返回错误:无效的JSON原语:test_FullName

1 个答案:

答案 0 :(得分:0)

输入错误。 FullName的值必须用双引号括起来,例如:

{&#34;全名&#34;:&#34; test_FullName&#34;&#34;的LoanID&#34;:11110&#34; LoanAmount&#34;:4000}

相关问题