【发布时间】:2017-04-14 09:53:07
【问题描述】:
我一直在浏览各种网站和 JSON.net 文档,但我找不到一种优雅的方式来做到这一点。
问题
我必须解析自某个日期以来的 GitHub 提交列表。
我一直用于测试的示例 json 文件:example json file
json 只是一个大(或空)数组。问题是我不需要所有数据,我只需要每次提交的 sha。 但是,如果您查看数组中的每种类型,就会发现有多个 shas。
有基础sha:
"sha": "fde139ae1d8fcf82bb145bbc99ed41763202e28f",
树沙:
"tree": {
"sha": "5d33d345f2df166bc4c56cc9307a61a5ee57d346",
"url": "https://api.github.com/repos/QuiZr/ProjectPorcupineLocalization/git/trees/5d33d345f2df166bc4c56cc9307a61a5ee57d346"
},
和父 sha(s):
"parents": [
{
"sha": "8b9b43e813645c3a66911247b3dca916af937738",
"url": "https://api.github.com/repos/QuiZr/ProjectPorcupineLocalization/commits/8b9b43e813645c3a66911247b3dca916af937738",
"html_url": "https://github.com/QuiZr/ProjectPorcupineLocalization/commit/8b9b43e813645c3a66911247b3dca916af937738"
}
]
我只想要第一个 sha。不是其他 shas。
要求
- 需要使用 JSON.net(不是 Ockokit)
- 应该优雅
- 需要支持Unity游戏引擎(即C#版本小于等于2.0)
- 我真的不想为此创建新的对象类型。
【问题讨论】:
-
Unity...游戏引擎?我不认为它支持 C# only 直到 v. 2.0。
-
@FᴀʀʜᴀɴAɴᴀᴍ 根据这里的帖子:answers.unity3d.com/questions/924021/… 这是 .NET 2.0 我认为这与 C# 版本 2 相同?
-
@FᴀʀʜᴀɴAɴᴀᴍ:嗯,不,它支持 C# 语言 比这晚很多,但目前只支持 CLR v2.0,和 .NET 框架最高 3.5 I相信(有一些缺失的方面)。但是 Json.NET 支持 .NET 2.0,我认为……至少,有版本支持。
-
@JonSkeet 是的,我已经使用 Unity 安装了 Json.NET,它工作正常。
-
对。但是,例如,您应该能够毫无问题地使用 C# 3 语言功能(例如匿名类型)。现在,为什么你不想为此创建一个新类型?这是让 Json.NET 工作的最简单方法之一 - 只需创建一个与 JSON 匹配的类型,然后对其进行反序列化。如果您不想这样做,您可以使用带有
JObject.Parse的 LINQ to JSON - 您尝试过吗?解释不寻常的要求并展示您迄今为止所做的尝试总是值得的。
标签: c# json github json.net github-api