#JSONをDeserializeしてデータを使用したい
QuickTypeを使用し以下のソースを自動生成いたしました。
Android実機にて
こちらのソースで下のJSON文字列をFromJsonしたところ
C#
1namespace QuickType 2{ 3 using System; 4 using System.Collections.Generic; 5 6 using System.Globalization; 7 using Newtonsoft.Json; 8 using Newtonsoft.Json.Converters; 9 10 public partial class UserData 11 { 12 [JsonProperty("count")] 13 public Dictionary<string, Count> Count { get; set; } 14 15 [JsonProperty("score")] 16 public Dictionary<string, Count> Score { get; set; } 17 } 18 19 public partial class Count 20 { 21 [JsonProperty("bestScore")] 22 public long BestScore { get; set; } 23 24 [JsonProperty("name")] 25 public string Name { get; set; } 26 } 27 28 public partial class UserData 29 { 30 public static UserData FromJson(string json) => JsonConvert.DeserializeObject<UserData>(json, QuickType.Converter.Settings); 31 } 32 33 public static class Serialize 34 { 35 public static string ToJson(this UserData self) => JsonConvert.SerializeObject(self, QuickType.Converter.Settings); 36 } 37 38 internal static class Converter 39 { 40 public static readonly JsonSerializerSettings Settings = new JsonSerializerSettings 41 { 42 MetadataPropertyHandling = MetadataPropertyHandling.Ignore, 43 DateParseHandling = DateParseHandling.None, 44 Converters = 45 { 46 new IsoDateTimeConverter { DateTimeStyles = DateTimeStyles.AssumeUniversal } 47 }, 48 }; 49 } 50} 51
json
1{ 2 "count": { 3 "aaa": { 4 "bestScore": 111, 5 "name": "hogehoge" 6 }, 7 "bbb": { 8 "bestScore": 222, 9 "name": "fugafuga" 10 } 11 }, 12 "score": { 13 "aaa": { 14 "bestScore": 11111111, 15 "name": "hogehoge" 16 }, 17 "bbb": { 18 "bestScore": 22222222, 19 "name": "fugafuga" 20 } 21 } 22}
以下のExceptionが発生してしまいました。
Unable to find a constructor to use for type UserData. A class should either have a default constructor, one constructor with arguments or a constructor marked with the JsonConstructor attribute. Path 'score', line 1, position 9
なぜAndroidの実機のみ例外が発生してしまうのか謎で困っております。
#試したこと
JsonConstructor attributeを付けたコンストラクタを作成してみましたが
同じExceptionが発生いたしました。
Unityエディター上では問題なく動作いたしました。
またIOS実機でも問題なく動作いたしました。
Android実機のみ例外が発生いたします。
#補足情報
PC:MacBook Pro (16-inch, 2019)
macOS:10.15.3(19D76)
確認端末:HTC U12+、XperiaXP
AndroidOS:9.0(Pie)、8.0(Oreo)
Unity:2019.2.10f1
Android Studio:3.5
Android SDK Build-Tools:29.0.2のみインストール
NDK:20.1.5948944のみインストール
Android Emulator:29.3.4
Android SDK Platform-Tools:29.0.5
Android SDK Tools:26.1.1
上記以外はSDKマネージャーでインストールしておりません。
JAVA JDK:jdk-8u241-macosx-x64.dmgをインストール

バッドをするには、ログインかつ
こちらの条件を満たす必要があります。