Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/271.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何获取包含多行的对象值_C#_Json_Excel - Fatal编程技术网

C# 如何获取包含多行的对象值

C# 如何获取包含多行的对象值,c#,json,excel,C#,Json,Excel,我正在将一个JSON字符串转换成一个对象,这个对象包含一个类似于行结构的表的多个记录。每行包含一些设置值。它就像一个物体中的一个物体。我试图读取这些对象的值,但没有成功 WebResponse response = request.GetResponse(); Stream responseStream = response.GetResponseStream(); // Open the stream using a StreamReader for easy access. Stream

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

通常我使用JavaScriptSerializer的方式是

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

//Deserialise
Thing thing = js.Deserialize<Thing>(str);
//序列化
JavaScriptSerializer js=新的JavaScriptSerializer();
string str=js.Serialize(newthing(){ID=“111”});
//反序列化
Thing=js.Deserialize(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")
}
Dictionary dic=(Dictionary)js.DeserializeObject(str);
foreach(dic中的KeyValuePair keyValue)
{

keyValue.Key;您是否尝试过将结果放入单个单元格而不是区域中?实际上,以前我创建的对象仅包含值,而这些值没有键名,工作正常,但现在我的对象包含多行数据,每行包含多个键值,现在此代码失败。我只想知道如何将我的对象itm放入循环中,以便获得itI中的存储值我正在认真寻找解决方案ASAPdo您不知道要反序列化的对象的
类型
?当我过去使用
JavaScriptSerializer
时,我刚刚反序列化到我首先序列化的对象…
MyClass myClassObject=ss.Deserialize(responseFromServer);
我现在已经对它进行了反序列化,并以数组格式获取myClassObject中的所有数据。现在每行都有多个对象,如offer\u id->2 person->“abcd”。可以有这么多这样的信息。所以我想计算它的总数,它也不显示数据,如键->键名和值->值名。要在excel中打印所有这些数据,我必须一个接一个地写入所有这些键。错误应该告诉你失败的原因…并突出显示要声明字典的类型…你能显示错误吗?