前提・実現したいこと
まず、a.jsonファイルを読み込み、データ内の"dataname"を見る。
b.JSONファイルの"dataname"を参照し、a.jsonファイルの"dataname"と一致したら"type"を見る。
そのtypeによって、a.jsonファイル内の"value"のデータの型を変換し、output.jsonファイルで出力する。
を実装したいです。
該当のソースコード
//a.json { "data": [ { "id": "100_1", "name": "tarou", "dataname": "AAA", "value": 155 }, { "id": "100_2", "name": "hanako", "dataname": "BBB", "value": 50 }, { "id": "100_3", "name": "manami", "dataname": "AAA", "value": 120 } ] }
//b.json { "definition": [ { "dataname": "AAA", "type": "string" }, { "dataname": "BBB", "type": "float" }, { "dataname": "CCC", "type": "int" } ] }
結果は
id:100_1 の value:"155"
id:100_1 の value:50.0
id:100_1 の value:"120" となるはずなので、
//output.json { "data": [ { "id": "100_1", "name": "tarou", "dataname": "AAA", "value": "155" }, { "id": "100_2", "name": "hanako", "dataname": "BBB", "value": 50.0 }, { "id": "100_3", "name": "manami", "dataname": "AAA", "value": "120" } ] }
試したこと
色々なサイトを巡り、以下までコーディングができましたが、これ以上手が進まなくなってしまいました…
お目汚しで申し訳ありません。(VisualStudio2019でjson.NET,C#を用いてコーディングしています)
using Newtonsoft.Json; using System; using System.IO; using System.Text; namespace ConsoleApp_1 { class Program { static void Main(string[] args) { string filepath = @"C:\Users\User\Desktop\a.json"; string jsonstring = File.ReadAllText(filepath, Encoding.UTF8); Console.WriteLine("読込完了"); var obj = JsonConvert.DeserializeObject(jsonstring); var deserialized = JsonConvert.DeserializeObject<object>(jsonstring); Console.WriteLine(deserialized); File.WriteAllText(@"C:\Users\User\Desktop\output.json", deserialized.ToString()); Console.WriteLine("出力完了"); } } }
皆様のお力添えをよろしくお願いいたします。
失礼しました。編集しました。
そうです。違う型で出力したいです。
ただ、そのやり方が見当つかず苦戦しています。
output.jsonの不備はどこか分かりませんでした。
回答3件
あなたの回答
tips
プレビュー