Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/322.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
Json反序列化和使用c#和ASP.NET MVC和Json.NET打印非原语对象_C#_Json_Asp.net Mvc_Json.net_Deserialization - Fatal编程技术网

Json反序列化和使用c#和ASP.NET MVC和Json.NET打印非原语对象

Json反序列化和使用c#和ASP.NET MVC和Json.NET打印非原语对象,c#,json,asp.net-mvc,json.net,deserialization,C#,Json,Asp.net Mvc,Json.net,Deserialization,我已经从WenAPI生成了一个json文件,其中包含名称、短文本、地理坐标(包括纬度和经度)以及图像。现在我想反序列化contrller cass中的每个对象,以便在视图中显示这些对象。我的json文件如下所示 { "poi":[ { "Name": "Berlin", "Shorttext": "Berlin is the capital of Germany

我已经从WenAPI生成了一个json文件,其中包含名称、短文本、地理坐标(包括纬度和经度)以及图像。现在我想反序列化contrller cass中的每个对象,以便在视图中显示这些对象。我的json文件如下所示

        {
        "poi":[
                {
                  "Name": "Berlin",
                  "Shorttext": "Berlin is the capital of Germany and one of the 16 states of Germany.....",
                  "GeoCoordinates": {
                    "Longitude": 13.38333333,
                    "Latitude": 52.51666667
                  },
                  "Images": [
                    "BA5AB22B.jpg"
                  ]
                },
                {
                  "Name": "munich",
                 "Shorttext": "Munich of the European Union with a population of above 1.5 million.....",
                  "GeoCoordinates": {
                    "Longitude": 11.56666667,
                    "Latitude": 48.13333333
                  },
                  "Images": [
                    "AA3CF664.jpg"
                  ]
                }
        ]
    }
这个对象的模型类是-

public class GeoCoordinates
{
  public double Longitude { get; set; }
  public double Latitude { get; set; }
 }

 public class Poi
  {
   public string Name { get; set; }
   public string Shorttext { get; set; }
   public GeoCoordinates GeoCoordinates { get; set; }
   public List<string> Images { get; set; }
  }

  public class RootObject
  {
    public List<Poi> poi { get; set; }
  }
编辑:我试图通过这种方式获得价值-

       var ReadJson = System.IO.File.ReadAllText(@"E:\C# Learning\POI.json");
        RootObject json = new System.Web.Script.Serialization.JavaScriptSerializer().Deserialize<RootObject>(ReadJson);

        foreach (var item in json.poi)
        {
            Console.WriteLine("name: {0}, shorttext : {1}, Geo: {2} ,Image:{3}", item.Name, item.Shorttext,item.GeoCoordinates,item.Images);
        }
var ReadJson=System.IO.File.ReadAllText(@“E:\C#Learning\POI.json”);
RootObject json=new System.Web.Script.Serialization.JavaScriptSerializer().Deserialize(ReadJson);
foreach(json.poi中的var项)
{
Console.WriteLine(“名称:{0},短文本:{1},地理:{2},图像:{3}”,item.name,item.shorttext,item.geocations,item.Images);
}
使用,您可以执行类似的操作(它还应该与
JavaScriptSerializer一起使用)

var ReadJson=System.IO.File.ReadAllText(@“E:\C#Learning\POI.json”);
RootObject json=JsonConvert.DeserializeObject(ReadJson);
foreach(json.poi中的var项)
{
Console.WriteLine(“名称:{0},短文本:{1},纬度:{2},纬度:{3},图像:{4}”,item.name,item.shorttext,item.geocations.Latitude,item.geocations.Longitude,string.Join(“,item.Images));
}
无论如何,你应该解释一下问题是什么。。。您目前的预期输出和输出是什么

看看这些文章:

尝试在中反序列化

List<Dictionary<string,string>>()
List()
然后您可以将数据提取为:

var data = JsonConvert.DeserializeObject<List<Dictionary<string, string>>>(ReadJson);
// you can simply pass your JSON string in place of ReadJson if you don't want to create a file
var val1  = data.Select(y => y["property name"]).Single();
var val2  = data.Select(y => y["property name"]).Single();
// and so on
var data=JsonConvert.DeserializeObject(ReadJson);
//如果不想创建文件,只需传递JSON字符串代替ReadJson即可
var val1=data.Select(y=>y[“属性名]).Single();
var val2=data.Select(y=>y[“属性名]).Single();
//等等

好吧,你有了类,还有JSON。。。如果只使用
JsonConver.DeserializeObject(json)
,会发生什么?编辑不会解释任何内容。您询问的是反序列化,而不是呈现。真正的问题是什么?
JsonConver
是一个打字错误。改用
JsonConvert
。@AmitKumarGhosh,
sonConvert
是一个打字错误,改用
JsonConvert
:)和?你遇到问题了吗?你试过什么吗?为什么这个问题不应该像许多其他问题一样结束呢?顺便说一句,如果你有两个问题,请分别发表两篇文章。这两个问题都有很多答案,您可以更新问题的标题,因为这与解析Json无关。这是关于打印非原始对象的更多信息。是的,我修改了我的问题。
List<Dictionary<string,string>>()
var data = JsonConvert.DeserializeObject<List<Dictionary<string, string>>>(ReadJson);
// you can simply pass your JSON string in place of ReadJson if you don't want to create a file
var val1  = data.Select(y => y["property name"]).Single();
var val2  = data.Select(y => y["property name"]).Single();
// and so on