我用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
答案 0 :(得分:0)
输入错误。 FullName的值必须用双引号括起来,例如:
{&#34;全名&#34;:&#34; test_FullName&#34;&#34;的LoanID&#34;:11110&#34; LoanAmount&#34;:4000}