c#的javascript函数序列化

时间:2012-12-18 21:24:02

标签: c# javascript json javascriptserializer

在我的c#课程中,我有以下课程:

public class Product
{
    public int product_id;
    public int quantity;
    public string book_cost;
}

如果我使用JavaScriptSerializer对其进行序列化,那么我会回来

{"product_id":0,"quantity":0,"book_cost":"hello"}
设置值后

这就是c#,但我如何序列化一个javascript函数来匹配呢?

我想将js函数解析为c#类

示例....如果我在c#中有一个类,并且我想将它发送到其他网络服务器,我可以使用

序列化对象并使其成为JSON
var serializer = new JavaScriptSerializer();
serializer.Serialize(new Product());

public class Product
{
   public int product_id = 0;
   public int quantity = 0;
   public string book_cost = "hello";
}

然后在另一边我可以拥有这个:

var serializer = new JavaScriptSerializer();
Product p = serializer.Deserialize<Product>(products);
Console.WriteLine(p.product_id);

public class Product
{
   public int product_id;
   public int quantity;
   public string book_cost;
}

它将打印出0,因为我创建了一个新产品类,其中包含来自另一个类的值,但我希望一方是js(发送方),另一方是c#(接收方)

这里有一个例子:

js side ...

我有这个功能,我已经设置了这个值,但我会在运行时更改它们。

function Product(){
    this.product_id = 0;
    this.quantity = 0;
    this.book_cost = "hello";   
}

然后我想从中生成我想要生成

{"product_id":0,"quantity":0,"book_cost":"hello"}

然后在另一方面,我想填充上面的Product类。我只会使用字符串,整数和日期对象。如果我在c#中序列化一个DateTime对象,它就会出现

{"date":"\/Date(-62135596800000)\/"}

1 个答案:

答案 0 :(得分:2)

您可以使用JSON.stringify方法在JSON中序列化对象。类似的东西:

function Product() {
    this.product_id = 0;
    this.quantity = 0;
    this.book_cost = "hello";   
}

var p = new Product();
p.quantity = 5;
var json = JSON.stringify(p);

Example

不要担心日期格式。任何好的序列化器都能识别各种日期表示。不需要手动重新格式化任何东西。