Skip to content

Commit 9bba7b3

Browse files
committed
Switch out Unity.Plastic json for an internal compact library
Based on https://github.com/smourier/ZeroDepJson with some minor changes (added support for creating specialized serialization options and recovering from snake case to camel case differences) Left to do: Fix string obfuscation and remove usage of "Indented" json formatting that does nothing
1 parent 91d3731 commit 9bba7b3

11 files changed

+5611
-58
lines changed

Runtime/Client/LootLockerBaseServerAPI.cs

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,10 @@
22
using System.Collections.Generic;
33
using UnityEngine;
44
using UnityEngine.Networking;
5-
//using Newtonsoft.Json;
6-
using Unity.Plastic.Newtonsoft.Json;
75
using System;
86
using System.Text;
97
using System.Net;
108
using LootLocker.Requests;
11-
//using Newtonsoft.Json.Linq;
12-
using Unity.Plastic.Newtonsoft.Json.Linq;
139

1410
namespace LootLocker.LootLockerEnums
1511
{
@@ -366,13 +362,15 @@ public ObfuscationDetails(string key, char replacementChar = '*', int visibleCha
366362
new ObfuscationDetails("token")
367363
};
368364

365+
//TODO: Fix this json usage
369366
private static string ObfuscateJsonStringForLogging(string json)
370367
{
371-
if (string.IsNullOrEmpty(json))
368+
return json;
369+
/*if (string.IsNullOrEmpty(json))
372370
{
373371
return json;
374372
}
375-
373+
376374
JObject jsonObject;
377375
try
378376
{
@@ -432,7 +430,7 @@ private static string ObfuscateJsonStringForLogging(string json)
432430
}
433431
}
434432
435-
return LootLockerJson.SerializeObject(jsonObject);
433+
return LootLockerJson.SerializeObject(jsonObject);*/
436434
}
437435

438436
string BuildURL(string endpoint, Dictionary<string, string> queryParams = null)

Runtime/Client/LootLockerServerRequest.cs

Lines changed: 21 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,22 @@
11
using System.Collections.Generic;
22
using UnityEngine;
33
using System;
4-
using Unity.Plastic.Newtonsoft.Json;
54
using LootLocker.LootLockerEnums;
6-
using Unity.Plastic.Newtonsoft.Json.Serialization;
5+
using LootLocker.ZeroDepJson;
76
#if UNITY_EDITOR
87
using UnityEditor;
98
#endif
109

11-
12-
// using LootLocker.Admin;
13-
// using LootLocker.Admin.Requests;
14-
1510
//this is common between user and admin
1611
namespace LootLocker
1712
{
1813

1914
public static class LootLockerJsonSettings
2015
{
21-
public static readonly JsonSerializerSettings Default = new JsonSerializerSettings
16+
public static readonly JsonOptions Default = new JsonOptions(JsonSerializationOptions.Default & ~JsonSerializationOptions.SkipGetOnly);
17+
18+
public static readonly JsonOptions Indented = new JsonOptions(JsonSerializationOptions.Default & ~JsonSerializationOptions.SkipGetOnly, "\t");
19+
/*public static readonly JsonSerializerSettings Default = new JsonSerializerSettings
2220
{
2321
ContractResolver = new DefaultContractResolver { NamingStrategy = new SnakeCaseNamingStrategy() },
2422
Formatting = Formatting.None
@@ -27,20 +25,29 @@ public static class LootLockerJsonSettings
2725
{
2826
ContractResolver = new DefaultContractResolver { NamingStrategy = new SnakeCaseNamingStrategy() },
2927
Formatting = Formatting.None
30-
};
28+
};*/
3129
}
3230

3331
public static class LootLockerJson
3432
{
35-
public static string SerializeObject(object obj, JsonSerializerSettings settings = null)
33+
public static string SerializeObject(object obj, JsonOptions options = null)
34+
{
35+
return Json.Serialize(obj, options ?? LootLockerJsonSettings.Default);
36+
}
37+
38+
public static T DeserializeObject<T>(string json, JsonOptions options = null)
39+
{
40+
return Json.Deserialize<T>(json, options ?? LootLockerJsonSettings.Default);
41+
}
42+
/*public static string SerializeObject(object obj, JsonSerializerSettings settings = null)
3643
{
3744
return JsonConvert.SerializeObject(obj, settings ?? LootLockerJsonSettings.Default);
3845
}
3946
4047
public static T DeserializeObject<T>(string json, JsonSerializerSettings settings = null)
4148
{
4249
return JsonConvert.DeserializeObject<T>(json, settings ?? LootLockerJsonSettings.Default);
43-
}
50+
}*/
4451
}
4552

4653
[System.Serializable]
@@ -96,13 +103,13 @@ public class LootLockerResponse
96103
/// </summary>
97104
public string EventId;
98105

99-
public static void Deserialize<T>(Action<T> onComplete, LootLockerResponse serverResponse, JsonSerializerSettings settings = null)
106+
public static void Deserialize<T>(Action<T> onComplete, LootLockerResponse serverResponse, JsonOptions options = null)
100107
where T : LootLockerResponse, new()
101108
{
102-
onComplete?.Invoke(Deserialize<T>(serverResponse, settings));
109+
onComplete?.Invoke(Deserialize<T>(serverResponse, options));
103110
}
104111

105-
public static T Deserialize<T>(LootLockerResponse serverResponse, JsonSerializerSettings settings = null)
112+
public static T Deserialize<T>(LootLockerResponse serverResponse, JsonOptions options = null)
106113
where T : LootLockerResponse, new()
107114
{
108115
if (serverResponse == null)
@@ -114,7 +121,7 @@ public static T Deserialize<T>(LootLockerResponse serverResponse, JsonSerializer
114121
return new T() { success = false, Error = serverResponse.Error, statusCode = serverResponse.statusCode };
115122
}
116123

117-
var response = LootLockerJson.DeserializeObject<T>(serverResponse.text, settings ?? LootLockerJsonSettings.Default) ?? new T();
124+
var response = LootLockerJson.DeserializeObject<T>(serverResponse.text, options ?? LootLockerJsonSettings.Default) ?? new T();
118125

119126
response.text = serverResponse.text;
120127
response.success = serverResponse.success;

Runtime/Game/Requests/AssetRequest.cs

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,5 @@
1-
//using Newtonsoft.Json;
2-
using Unity.Plastic.Newtonsoft.Json;
3-
using System;
4-
using System.Collections;
1+
using System;
52
using System.Collections.Generic;
6-
using UnityEngine;
7-
using LootLocker;
83
using LootLocker.Requests;
94
using System.Linq;
105

Runtime/Game/Requests/CrashesRequest.cs

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,5 @@
1-
//using Newtonsoft.Json;
2-
using Unity.Plastic.Newtonsoft.Json;
3-
using System;
4-
using System.Collections;
1+
using System;
52
using System.Collections.Generic;
6-
using UnityEngine;
7-
using LootLocker;
83
using LootLocker.Requests;
94

105

Runtime/Game/Requests/LootLockerSessionRequest.cs

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ public class LootLockerSessionRequest : LootLockerGetRequest
99
{
1010
public string game_key => LootLockerConfig.current.apiKey?.ToString();
1111
public string platform => CurrentPlatform.GetString();
12-
public string player_identifier { get; private set; }
12+
public string player_identifier { get; set; }
1313
public string game_version => LootLockerConfig.current.game_version;
1414

1515
public LootLockerSessionRequest(string player_identifier)
@@ -117,7 +117,7 @@ public class LootLockerLevel_Thresholds
117117
public class LootLockerNintendoSwitchSessionRequest : LootLockerGetRequest
118118
{
119119
public string game_key => LootLockerConfig.current.apiKey?.ToString();
120-
public string nsa_id_token { get; private set; }
120+
public string nsa_id_token { get; set; }
121121
public string game_version => LootLockerConfig.current.game_version;
122122

123123
public LootLockerNintendoSwitchSessionRequest(string nsa_id_token)
@@ -130,7 +130,7 @@ public LootLockerNintendoSwitchSessionRequest(string nsa_id_token)
130130
public class LootLockerEpicSessionRequest : LootLockerGetRequest
131131
{
132132
public string game_key => LootLockerConfig.current.apiKey?.ToString();
133-
public string id_token { get; private set; }
133+
public string id_token { get; set; }
134134
public string game_version => LootLockerConfig.current.game_version;
135135

136136
public LootLockerEpicSessionRequest(string id_token)
@@ -143,7 +143,7 @@ public LootLockerEpicSessionRequest(string id_token)
143143
public class LootLockerEpicRefreshSessionRequest : LootLockerGetRequest
144144
{
145145
public string game_key => LootLockerConfig.current.apiKey?.ToString();
146-
public string refresh_token { get; private set; }
146+
public string refresh_token { get; set; }
147147
public string game_version => LootLockerConfig.current.game_version;
148148

149149
public LootLockerEpicRefreshSessionRequest(string refresh_token)
@@ -155,7 +155,7 @@ public LootLockerEpicRefreshSessionRequest(string refresh_token)
155155
public class LootLockerXboxOneSessionRequest : LootLockerGetRequest
156156
{
157157
public string game_key => LootLockerConfig.current.apiKey?.ToString();
158-
public string xbox_user_token { get; private set; }
158+
public string xbox_user_token { get; set; }
159159
public string game_version => LootLockerConfig.current.game_version;
160160

161161
public LootLockerXboxOneSessionRequest(string xbox_user_token)
@@ -167,7 +167,7 @@ public LootLockerXboxOneSessionRequest(string xbox_user_token)
167167
public class LootLockerGoogleSignInSessionRequest : LootLockerGetRequest
168168
{
169169
public string game_key => LootLockerConfig.current.apiKey?.ToString();
170-
public string id_token { get; private set; }
170+
public string id_token { get; set; }
171171
public string game_version => LootLockerConfig.current.game_version;
172172

173173
public LootLockerGoogleSignInSessionRequest(string id_token)
@@ -179,7 +179,7 @@ public LootLockerGoogleSignInSessionRequest(string id_token)
179179
public class LootLockerGoogleRefreshSessionRequest : LootLockerGetRequest
180180
{
181181
public string game_key => LootLockerConfig.current.apiKey?.ToString();
182-
public string refresh_token { get; private set; }
182+
public string refresh_token { get; set; }
183183
public string game_version => LootLockerConfig.current.game_version;
184184

185185
public LootLockerGoogleRefreshSessionRequest(string refresh_token)
@@ -191,7 +191,7 @@ public LootLockerGoogleRefreshSessionRequest(string refresh_token)
191191
public class LootLockerAppleSignInSessionRequest : LootLockerGetRequest
192192
{
193193
public string game_key => LootLockerConfig.current.apiKey?.ToString();
194-
public string apple_authorization_code { get; private set; }
194+
public string apple_authorization_code { get; set; }
195195
public string game_version => LootLockerConfig.current.game_version;
196196

197197
public LootLockerAppleSignInSessionRequest(string apple_authorization_code)
@@ -203,7 +203,7 @@ public LootLockerAppleSignInSessionRequest(string apple_authorization_code)
203203
public class LootLockerAppleRefreshSessionRequest : LootLockerGetRequest
204204
{
205205
public string game_key => LootLockerConfig.current.apiKey?.ToString();
206-
public string refresh_token { get; private set; }
206+
public string refresh_token { get; set; }
207207
public string game_version => LootLockerConfig.current.game_version;
208208

209209
public LootLockerAppleRefreshSessionRequest(string refresh_token)

Runtime/Game/Requests/MapsRequest.cs

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,5 @@
1-
using System.Collections;
2-
using System.Collections.Generic;
3-
using UnityEngine;
4-
using LootLocker.Requests;
5-
using LootLocker;
1+
using LootLocker.Requests;
62
using System;
7-
//using Newtonsoft.Json;
8-
using Unity.Plastic.Newtonsoft.Json;
93

104
namespace LootLocker.Requests
115
{

Runtime/Game/Requests/MessagesRequest.cs

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,4 @@
1-
using System.Collections;
2-
using System.Collections.Generic;
3-
using UnityEngine;
4-
using LootLocker;
5-
using LootLocker.Requests;
6-
//using Newtonsoft.Json;
7-
using Unity.Plastic.Newtonsoft.Json;
1+
using LootLocker.Requests;
82
using System;
93

104
namespace LootLocker.Requests

Runtime/Game/Requests/PlayerRequest.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
using System;
22
using LootLocker.Requests;
3-
using Unity.Plastic.Newtonsoft.Json;
3+
using LootLocker.ZeroDepJson;
44

55
namespace LootLocker.Requests
66
{
@@ -203,7 +203,7 @@ public class LootLockerPlayerFile : LootLockerResponse
203203
public string name { get; set; }
204204
public int size { get; set; }
205205
public string purpose { get; set; }
206-
[JsonProperty("public")]
206+
[Json(Name = "public")]
207207
public bool is_public { get; set; }
208208
public string url { get; set; }
209209
public DateTime url_expires_at { get; set; }

Runtime/Libraries.meta

Lines changed: 8 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)