如何获取其中包含多行的Object值

时间:2013-09-24 11:44:12

标签: c# json excel

我正在将JSON字符串转换为对象,并且此对象包含表格的多个记录,如行结构。每行包含一些设定值。它就像一个物体中的物体。我试图读取这些对象的值,但我没有成功。

WebResponse response = request.GetResponse();

Stream responseStream = response.GetResponseStream();

// Open the stream using a StreamReader for easy access.
StreamReader reader = new StreamReader(responseStream);
// Read the content.
string responseFromServer = reader.ReadToEnd();

//converting json data into array
JavaScriptSerializer ss = new JavaScriptSerializer();
object itm = ss.DeserializeObject(responseFromServer);

在此响应流对象中为json字符串提供了多个值,我使用javascriptserializer将其转换为对象。在调试模式下,我已经看到该对象中的所有数据都存在于多行中,其中每行本身也是一个对象。

这些行存储诸如offer_id,name作为键和值的信息。我想写一个循环来调用这个键及其值来执行进一步的操作。但是我无法在循环中调用这些数据。

1 个答案:

答案 0 :(得分:0)

通常我使用JavaScriptSerializer的方式是

//Serialise
JavaScriptSerializer js = new JavaScriptSerializer();
string str = js.Serialize(new Thing() { ID = "111" });

//Deserialise
Thing thing = js.Deserialize<Thing>(str);

但是如果您不知道要转换回的类型可以

Dictionary<string, object> dic = (Dictionary<string, object>)js.DeserializeObject(str);

foreach (KeyValuePair<string, object> keyValue in dic)
{
    keyValue.Key; <-- this is the property name (ID)
    keyValue.Value; <-- this is the property value ("111")
}

然后只处理您收到的键值对。