我创建了一个类,使用我的PHP休息API的一些方法。这个方法返回字符串,有时也是一个对象该对象表示堆栈跟踪的上下文。我将这个痕迹保存在IDictionary
之内。一个小例子:如何将对象保存到字符串字典中?
IDictionary<string, string> transaction = new Dictionary<string, string>();
public class Details
{
public string date { get; set; }
public string type { get; set; }
public string mex { get; set; }
}
public class Context
{
public List<object> context { get; set; }
}
public class Trace
{
public Details details { get; set; }
public Context context { get; set; }
}
public class RootObject
{
public Trace trace { get; set; }
}
//Parse the json
public IDictionary<string, string> getData()
{
var obj = JsonConvert.DeserializeObject<List<RootObject>>("the json");
foreach (var item in obj)
{
transaction["date"] = item.trace.details.date;
transaction["type"] = item.trace.details.type;
transaction["mex"] = item.trace.details.mex;
// Get some context
foreach (var trace in item.trace.context.context)
{
transaction["context"] = trace; //I can't do this is an object
}
}
return transaction;
}
你怎么能看到trace
项目是一个对象,我不能把它保存在我的IDictionary
。解决问题的一些方法?
你为什么不跟踪序列化使用JSON并保存为这样的字符串:JsonConvert.SerializeObject(跟踪) –
@Klaudiuszbryjamus我会尽力而为。 – Sandokan
您是否知道,您只保存列表的最后一个元素?列表中有什么样的数据?你想存储它作为数组或作为一个字符串或别的东西? – lukbl