私は現在、ミニクラフトの既存のランチャーを使用していくつかの問題を解決するための小さなランチャーを作成しようとしています。 私は必要なすべての情報を得るために.jsonファイルを読み込もうとしています。 .jsonファイルhereを参照する必要がある場合。json foreachループ(json.netなし)
私はちょうどこれで
string clienturl = readJson("//downloads/client/url");
のような単一の情報が必要な場合、私はそれが働いてしまった:
private string readJson(string element)
{
string json = File.ReadAllText(Path.Combine(appPath + "1.10.2.json"));
var jsonReader = JsonReaderWriterFactory.CreateJsonReader(Encoding.UTF8.GetBytes(json), new System.Xml.XmlDictionaryReaderQuotas());
var root = XElement.Load(jsonReader);
return root.XPathSelectElement(element).Value;
}
問題は今、私は他のすべてのファイルについての情報を取得する必要があるということです。
libraries/downloads/artifact/path
libraries/downloads/artifact/url
が、明らかに私は、foreachループを必要とし、「パス」と「URL」のための1つのエントリ、より多くのがあります: 「要素」になります。 foreachループで動作させるには、上記のコードで何を変更する必要がありますか?
私の悪い英語のために申し訳ありません、私は理解しにくいことを願っています。
ファイルをダウンロードしたくない場合は.jsonの小さなプレビュー:
"libraries": [
{
"name": "com.mojang:netty:1.6",
"downloads": {
"artifact": {
"size": 7877,
"sha1": "4b75825a06139752bd800d9e29c5fd55b8b1b1e4",
"path": "com/mojang/netty/1.6/netty-1.6.jar",
"url": "https://libraries.minecraft.net/com/mojang/netty/1.6/netty-1.6.jar"
}
}
},
{
"name": "oshi-project:oshi-core:1.1",
"downloads": {
"artifact": {
"size": 30973,
"sha1": "9ddf7b048a8d701be231c0f4f95fd986198fd2d8",
"path": "oshi-project/oshi-core/1.1/oshi-core-1.1.jar",
"url": "https://libraries.minecraft.net/oshi-project/oshi-core/1.1/oshi-core-1.1.jar"
}
}
},
{
"name": "net.java.dev.jna:jna:3.4.0",
"downloads": {
"artifact": {
"size": 1008730,
"sha1": "803ff252fedbd395baffd43b37341dc4a150a554",
"path": "net/java/dev/jna/jna/3.4.0/jna-3.4.0.jar",
"url": "https://libraries.minecraft.net/net/java/dev/jna/jna/3.4.0/jna-3.4.0.jar"
}
}
}
]
なぜあなたはJSONライブラリを使用したくありませんか?あなたはそれらを使用して2分で終了します –
@SirRufo .netで.jsonファイルを扱う多くの方法がありますが、私が使用しているものは1つだけです。私は本当にあなたが望むものを得るために第三者の図書館を使う必要性を見ていません。私はサードパーティのライブラリなしで.jsonをループする方法もたくさんあると確信しています。私は現在、どうやってどうやっているのか分かりません。 – Backslash
確かにたくさんの方法がありますし、子供用のシャベルで家を建てることもできます。私は、仕事を行うための正しいツールを使用することをお勧めします。 Json.NETを使用すると、2分で作業が完了します。ちょうど私の2セント –