Я использую Newtonsoft.Json для генерации следующего результата Json. Я сгенерировал большую часть выходных данных, кроме «Атрибутов», и не смог понять, как это сделать. Результат запрашивается клиентом и не может быть изменен.
Ожидаемый результат.
{
"TransactionId": "3S76CjmZ3S7",
"Environment": "sandbox",
"ApiVersion": "1.0",
"Error": "",
"Warning": "",
"Data_response": {
"Data_response_data": [{
"Brand": "Genuine",
"Number": "E11106660",
"Description": "DUPLICATE BASE",
"Images": [{
"FileName": "EA10650_STO_FRO_ALL.PNG"
},
{
"FileName": "EA10660_STO_FRO_ALL.png"
}
],
"360Images": [{
"FileName": "EA10660_STO_ALL.zip"
}],
"OriginalStrings": "E11106660",
"Attributes": {
"Color": "Blue",
"Weight": "120lbs",
"Brand": "TRP"
}
}]
}
}
Я использую следующий код для создания JSON.
JObject jObject = JObject.FromObject(new
{
TransactionId = partRequest.TransactionId,
Environment = partRequest.Environment,
ApiVersion = partRequest.ApiVersion,
Error = "",
Warning = "",
Data_response = new
{
Data_response_data =
from p in Wrapper
orderby p.CompressedNumber
select new
{
Brand = p.Brand,
Number = p.CompressedNumber,
Description = p.Description,
Images =
from d in p.DigitalAssets
orderby d.FileName
select new
{
FileName = d.FileName
},
360Images =
from d in p.DigitalAssets360
orderby d.FileName
select new
{
FileName = d.FileName
},
OriginalStrings = p.CompressedNumber,
Attributes = ???
// I tried this but its throws an exception.
// from d in p.Attributes
// orderby d.Name
// select new
// {
// d.Name = d.Value
//}
}
}
});
Класс атрибута
public class Attribute
{
public int Id { get; set; }
public string Name { get; set; }
public string Value { get; set; }
}
Заранее спасибо.