1

我正在将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、名称作为键和值之类的信息。我想编写一个循环来调用此键及其值以执行进一步的操作。但我无法在循环中调用这些数据。

4

1 回答 1

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")
}

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

于 2013-09-25T12:06:21.223 回答