首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >统一c# -如何获取list<object>的值

统一c# -如何获取list<object>的值
EN

Stack Overflow用户
提问于 2018-07-01 08:49:20
回答 1查看 1K关注 0票数 0

我有个json:

[[“特拉维夫”、“别尔谢巴”、“耶路撒冷”、“海法”]、{“城市”:“特拉维夫”}、{“城市”:“别尔谢巴”}、{“城市”:“耶路撒冷”}、{“城市”:“海法”},{“城市”:“耶路撒冷”},{“城市”:“特拉维夫”},{“城市”:“海法”},{“城市”:“贝尔谢巴”},{“城市”:“耶路撒冷”},{“城市”:“耶路撒冷”},{“城市”:“海法”},{“城市”:“特拉维夫”},{“城市”:“特拉维夫”},{“城市”:“别尔谢巴”}]

我把它转换成一张清单:

代码语言:javascript
复制
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Newtonsoft;
string jsonStr = "<json string from above>";
List<object> data;
private void Start()
{
    data = Newtonsoft.Json.JsonConvert.DeserializeObject<List<object>>(jsonStr);
    Debug.Log(data[0,0]);
}

但是当dubugger得到“Debug.Log(data0,0)”时,它打印了:

严重性代码描述项目文件行抑制状态错误( CS0021 )不能将[]索引应用于类型'object‘Assembly-CSharp 31 Active的表达式

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-01 09:13:19

字符串在List<object>中反序列化--列表只能用一个维度进行索引。

因此反序列化只创建两个类型为JArray的对象。

第一个是由四个城市组成的小组,第二个是由14个城市组成的数组。

获取第一个对象的第一个元素。

代码语言:javascript
复制
Console.WriteLine((data[0] as JArray)[0][0]);

但是,如果要访问第二个JArray中的任何元素,则可以使用以下语法

代码语言:javascript
复制
Console.WriteLine((data[1] as JArray)[1]["City"]);   // Beersheba
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51121777

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档