好吧,我不知道如何快速地回答我的问题,但我可以提供以下示例:
var request = WebRequest.Create(apiUrl + string.Format("/orders?status={0}&access_token={1}", orderStatusToImport, authorizationDetails.AccessToken));
request.Method = "GET";
var response = (HttpWebResponse)request.GetResponse();
var responseString = new StreamReader(response.GetResponseStream()).ReadToEnd();
var orders = JsonConvert.DeserializeObject<models.Order[]>(responseString);
var processableOrders = orders.Where(o => o.Status.ToLower() == orderStatusToImport.ToLower());
foreach (var order in processableOrders)
{
ImportOrder(order, param1, param2, out result);
}
这完美无缺。但是,我也想保存'原创'Json。在这种情况下,这将是'responseString',但我仅希望Json的部分具有此订单的数据。没什么。
例如;让我们说Json有三个订单对象:
{"Orders": [
{
"Name":"John",
"LastName":"Doe",
"ItemId":5
},
{
"Name":"Jane",
"LastName":"Doe",
"ItemId":3
},
{
"Name":"Aaron",
"LastName":"Mark",
"ItemId":5
}
]}
我想分别为每个订单保存Json。所以最终我只有一个字符串:
{
"Name":"Aaron",
"LastName":"Mark",
"ItemId":5
}
我怎样才能做到这一点?我正在使用Newtonsoft.Json NuGet包。
答案 0 :(得分:2)
您可以循环再次序列化order
对象。它将为您提供该特定订单的json字符串。
foreach (var order in processableOrders)
{
var order_Serialized = JsonConvert.SerializeObject(order);
ImportOrder(order, param1, param2, out result);
}
答案 1 :(得分:1)
反序列化后,选择该对象,然后将其序列化为JSON,然后就得到了你想要的东西。