【问题标题】:Passing the object of FileUpload success callback to Controller Action Method将 FileUpload 成功回调的对象传递给 Controller Action 方法
【发布时间】:2013-11-21 08:36:01
【问题描述】:

JSON 字符串

[{"程序":"易趣 US","Date":"/Date(1384108200000)/","TimePlus":"/Date(-62135596800000)/","Campaign":"cwsi12","Clicks":0,"EPC":3.3799, “收入”:6.7599,“CampaignID”:“5337412363”,“印象”:“0”,“状态”:“重复 在数据库中"},{"程序":"eBay US","Date":"/Date(1384108200000)/","TimePlus":"/Date(-62135596800000)/","Campaign":"cwsi12","Clicks":0,"EPC":3.3799, “收入”:6.7599,“CampaignID”:“5337412363”,“印象”:“0”,“状态”:“重复 在数据库中"},{"程序":"eBay US","Date":"/Date(1384108200000)/","TimePlus":"/Date(-62135596800000)/","Campaign":"cwsi12","Clicks":0,"EPC":3.3799, “收入”:6.7599,“CampaignID”:“5337412363”,“印象”:“0”,“状态”:“重复 在数据库中"},{"程序":"eBay US","Date":"/Date(1384108200000)/","TimePlus":"/Date(-62135596800000)/","Campaign":"cwsi12","Clicks":0,"EPC":3.3799, “收入”:6.7599,“CampaignID”:“5337412363”,“印象”:“0”,“状态”:“重复 在数据库中"}]

查看模型

public class EbayEarnings_Temp
{
    public String Program { get; set; }
    public DateTime Date { get; set; }
    public DateTime TimePlus { get; set; }
    public String Campaign { get; set; }
    public int Clicks { get; set; }
    public decimal EPC { get; set; }
    public decimal Earnings { get; set; }
    public String CampaignID { get; set; }
    public String Impression { get; set; }
    public string Status { get; set; }
}

var serializer = new System.Runtime.Serialization.Json.DataContractJsonSerializer(typeof(EbayEarnings_Temp));
var c = (EbayEarnings_Temp)serializer.ReadObject(jsonString);

我收到这个错误

解析值时遇到意外字符:S. Path '', line 0, position 0.

【问题讨论】:

    标签: c# asp.net-mvc asp.net-mvc-4 c#-4.0


    【解决方案1】:

    消息是 json 对象而不是列表。您必须手动集成序列化程序或序列化 json 对象。 我想它一定是这样的:

    public ActionResult action(Object Message)
    {    
        // deserialise if Object Message is a string
        var serializer = new JavaScriptSerializer();
        var c = serializer.Deserialize<YourClass>(Message);
    
        // deserialise if Object Message is a JsonObject
        var serializer = new DataContractJsonSerializer(typeof(YourClass));
        var c = (YourClass)serializer.ReadObject(Message);
    
        return PartialView(Message);
    }
    

    或其他解决方案:

    我使用库Newtonsoft.Json。如果你打算在你的情况下使用它,它看起来像:

    ...    
    MyClass m = JsonConvert.DeserializeObject<Message>(message.ToString());
    var status = m.Status; //...and so on
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多