Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/264.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# 如何解析JSON并对其进行迭代?_C#_.net_Json_Iteration - Fatal编程技术网

C# 如何解析JSON并对其进行迭代?

C# 如何解析JSON并对其进行迭代?,c#,.net,json,iteration,C#,.net,Json,Iteration,我如何在以下格式的JSON中迭代图像?图像集合的长度可以是任意的。我可以操纵它使其成为一个列表,或者我必须使用什么选项来解析它 images: { 0: { filename: "image1.jpg" }, 1: { filename: "image2.jpg" }, 2: { filename: "image3.jpg" }, } 一种可能的解决方案是创建json的动态表示: dynamic jsonData = JsonConvert.De

我如何在以下格式的JSON中迭代
图像
图像
集合的长度可以是任意的。我可以操纵它使其成为一个列表,或者我必须使用什么选项来解析它

images: {
  0: {
    filename: "image1.jpg"
  },
  1: {
    filename: "image2.jpg"
  },
  2: {
    filename: "image3.jpg"
  },
}

一种可能的解决方案是创建json的
动态
表示:

dynamic jsonData = JsonConvert.DeserializeObject(@"{
    images: {
        0: {
            filename: ""image1.jpg""
        },
        1: {
            filename: ""image2.jpg""
        },
        2: {
            filename: ""image3.jpg""
        }
    }
    }");


foreach(var item in jsonData["images"])
{
    //Do something
}

一种可能的解决方案是创建json的
动态
表示:

dynamic jsonData = JsonConvert.DeserializeObject(@"{
    images: {
        0: {
            filename: ""image1.jpg""
        },
        1: {
            filename: ""image2.jpg""
        },
        2: {
            filename: ""image3.jpg""
        }
    }
    }");


foreach(var item in jsonData["images"])
{
    //Do something
}
如果您阅读过,您会注意到这是一个推荐用于此类情况的库

您可以尝试使用从JSON输入创建对象,但当我刚才尝试时,我无法让它处理JSON字符串中的项目集合。

如果您已经阅读了,您会注意到这是一个推荐用于此类情况的库


您可以尝试使用从JSON输入创建对象,但当我刚才尝试时,我无法让它处理JSON字符串中的项目集合。

您可以使用普通javascript这样做:

for (objectName in data["images"]) {
    html += data["images"][objectName]["filename"] + "<br />"
}
for(数据[“图像”中的objectName){
html+=数据[“图像”][objectName][“文件名”]+“
” }
下面的完整HTML文件示例

<!DOCTYPE html>
<html>
    <head>
        <title></title>
    </head>
<body>
    <div id="result"></div>
        <script type="text/javascript">
            var data = {
                "images": {
                    "0": {
                        "filename": "image1.jpg"
                    },
                    "1": {
                        "filename": "image2.jpg"
                    },
                    "2": {
                        "filename": "image3.jpg"
                    }
                }};

            var html = '';
            for (objectName in data["images"]) {
                html += data["images"][objectName]["filename"] + "<br />"
            }

            document.getElementById("result").innerHTML = html;

        </script>
    </body>
    </html>

风险值数据={
“图像”:{
"0": {
“文件名”:“image1.jpg”
},
"1": {
“文件名”:“image2.jpg”
},
"2": {
“文件名”:“image3.jpg”
}
}};
var html='';
对于(数据[“图像”]中的objectName){
html+=数据[“图像”][objectName][“文件名”]+“
” } document.getElementById(“结果”).innerHTML=html;
您可以使用香草javascript这样做:

for (objectName in data["images"]) {
    html += data["images"][objectName]["filename"] + "<br />"
}
for(数据[“图像”中的objectName){
html+=数据[“图像”][objectName][“文件名”]+“
” }
下面的完整HTML文件示例

<!DOCTYPE html>
<html>
    <head>
        <title></title>
    </head>
<body>
    <div id="result"></div>
        <script type="text/javascript">
            var data = {
                "images": {
                    "0": {
                        "filename": "image1.jpg"
                    },
                    "1": {
                        "filename": "image2.jpg"
                    },
                    "2": {
                        "filename": "image3.jpg"
                    }
                }};

            var html = '';
            for (objectName in data["images"]) {
                html += data["images"][objectName]["filename"] + "<br />"
            }

            document.getElementById("result").innerHTML = html;

        </script>
    </body>
    </html>

风险值数据={
“图像”:{
"0": {
“文件名”:“image1.jpg”
},
"1": {
“文件名”:“image2.jpg”
},
"2": {
“文件名”:“image3.jpg”
}
}};
var html='';
对于(数据[“图像”]中的objectName){
html+=数据[“图像”][objectName][“文件名”]+“
” } document.getElementById(“结果”).innerHTML=html;
我最终找到了答案——虽然在这种情况下它可能不是最佳实践

var imageHoldingList = new List<VehicleImagesModel>();
var connectionResponse = JsonConvert.DeserializeObject<dynamic>(results);
var jImage = connectionResponse["response"]["vehicles"]["images"].Children();

foreach (var image in jImage)
{
   var h = new VehicleImagesModel
   {
      Filename = image.First.filename.ToString(),
      Caption = image.First.caption.ToString()
   };
   imageHoldingList.Add(h);
var imageHoldingList=new List();
var connectionResponse=JsonConvert.DeserializeObject(结果);
var jImage=connectionResponse[“response”][“vehicles”][“images”]。Children();
foreach(jImage中的var图像)
{
var h=新车辆图像模型
{
Filename=image.First.Filename.ToString(),
Caption=image.First.Caption.ToString()
};
imageHoldingList.Add(h);

}

我最终找到了答案——尽管在这种情况下它可能不是最佳实践

var imageHoldingList = new List<VehicleImagesModel>();
var connectionResponse = JsonConvert.DeserializeObject<dynamic>(results);
var jImage = connectionResponse["response"]["vehicles"]["images"].Children();

foreach (var image in jImage)
{
   var h = new VehicleImagesModel
   {
      Filename = image.First.filename.ToString(),
      Caption = image.First.caption.ToString()
   };
   imageHoldingList.Add(h);
var imageHoldingList=new List();
var connectionResponse=JsonConvert.DeserializeObject(结果);
var jImage=connectionResponse[“response”][“vehicles”][“images”]。Children();
foreach(jImage中的var图像)
{
var h=新车辆图像模型
{
Filename=image.First.Filename.ToString(),
Caption=image.First.Caption.ToString()
};
imageHoldingList.Add(h);

}

您的json看起来很奇怪。图像不应该是一个数组而不是一个对象吗?是的,返回的数据是真正的wierd,有时它是作为数组返回的,但有时它不是,我正在研究当它不是你的json看起来很奇怪时的逻辑。图像不应该是一个数组而不是一个对象吗?是的,返回的数据确实是wierd,有时它是作为数组返回的,但有时它不是,我正在研究逻辑,因为它不是