2017-07-08 78 views
1
var singleItems = new List<Products>(); 

singleItems.Add(new Products() { product_id = 1, title = "Bryon Hetrick", price = 50 }); 
singleItems.Add(new Products() { product_id = 2, title = "Nicole Wilcox", price = 20 }); 

var serializer = new JavaScriptSerializer(); 
var serializedResult = serializer.Serialize(serializer); 

从上面的示例代码中,我得到的Json输出像波纹管。从JavaScriptSerializer输出json格式

[{"product_id":1,"title":"Bryon Hetrick","price":50}, 
{"product_id":2,"title":"Nicole Wilcox","price":20}] 

但我的Json需要一个更多的值 - “配置”,我也需要格式化完全像波纹管的整个数据。如何编辑我的C#代码来实现该值?

{ "products":[{"product_id":"B071H6TBM5","title":"New Iphone 5S","price":"23.45"},{"product_id":"B071DM968J","title":"Iphone 4 old","price":"23.45"}],"config":{"token":"","Site":"Us","Mode":"ListMyItem"}} 

回答

0

你可以做一个Config类你需要的属性,然后与产品展示和配置,即ProductConfig复合类:

public class Products 
{ 
    public string product_id { get; set; } 
    public string title { get; set; } 
    public string price { get; set; } 
} 

public class Config 
{ 
    public string token { get; set; } 
    public string site { get; set; } 
    public string mode { get; set; } 
} 

public class ProductConfig 
{ 
    public List<Products> Products { get; set; } 
    public Config Config { get; set; } 
} 

然后,您可以创建/填充ProductConfig类新属性。

public string SerializeProductConfig() 
{ 
    ProductConfig pc = new ProductConfig(); 
    pc.Config = new Config { token = "DDTest", site = "US", mode = "Test Mode" }; 
    pc.Products = new List<Products>(); 
    pc.Products.Add(new Products() { product_id = "1", title = "Bryon Hetrick", price = "50" }); 
    pc.Products.Add(new Products() { product_id = "2", title = "Nicole Wilcox", price = "20" }); 

    var serializer = new JavaScriptSerializer(); 
    return serializer.Serialize(pc); 
} 

,并使用JavaScript串行或NewtonSoft,这将给你的序列化对象ProductConfig以下JSON

{ // ProductConfig 
    "Products": [ 
    { 
     "product_id": "1", 
     "title": "Bryon Hetrick", 
     "price": "50" 
    }, 
    { 
     "product_id": "2", 
     "title": "Nicole Wilcox", 
     "price": "20" 
    } 
    ], 
    "config": { 
    "token": "DDTest", 
    "site": "US", 
    "mode": "Test Mode" 
    } 
} 
+0

有没有办法做到这一点而不使其模型类? –

+0

@Johnpoe - 序列化程序查看您提供的对象并将其转换为JSON,因此您必须修改您的RegisteredUsers类以包含输出的Config属性。这可能会打破你的设计,所以我会建议有一个中间班,如我的答案中所示。 –

+0

我编辑了这个问题。 –