mirror of
https://github.com/AssetRipper/AssetRipper.git
synced 2025-12-11 20:15:29 +01:00
Use source generated json serializer contexts in the tools
This commit is contained in:
parent
26c68441f6
commit
401c7fe6c3
@ -0,0 +1,10 @@
|
||||
using AssetRipper.IO.Files.SourceGenerator.Json;
|
||||
using System.Text.Json.Serialization;
|
||||
|
||||
namespace AssetRipper.IO.Files.SourceGenerator;
|
||||
|
||||
[JsonSerializable(typeof(TypeDeclaration))]
|
||||
[JsonSerializable(typeof(TypeDefinition))]
|
||||
internal partial class InternalSerializerContext : JsonSerializerContext
|
||||
{
|
||||
}
|
||||
@ -55,11 +55,11 @@ namespace AssetRipper.IO.Files.SourceGenerator
|
||||
string text = File.ReadAllText(fileInfo.FullName);
|
||||
if (fileInfo.Name == declarationFileName)
|
||||
{
|
||||
declaration = JsonSerializer.Deserialize<TypeDeclaration>(text);
|
||||
declaration = JsonSerializer.Deserialize(text, InternalSerializerContext.Default.TypeDeclaration);
|
||||
}
|
||||
else
|
||||
{
|
||||
TypeDefinition definition = JsonSerializer.Deserialize<TypeDefinition>(text) ?? throw new NullReferenceException();
|
||||
TypeDefinition definition = JsonSerializer.Deserialize(text, InternalSerializerContext.Default.TypeDefinition) ?? throw new NullReferenceException();
|
||||
if (definition.Version == -1)
|
||||
{
|
||||
if (versionIndependent is null)
|
||||
|
||||
@ -0,0 +1,9 @@
|
||||
using System.Text.Json.Serialization;
|
||||
|
||||
namespace AssetRipper.Tools.CabMapGenerator;
|
||||
|
||||
[JsonSourceGenerationOptions(WriteIndented = true)]
|
||||
[JsonSerializable(typeof(Dictionary<string, string>))]
|
||||
internal partial class DictionarySerializerContext : JsonSerializerContext
|
||||
{
|
||||
}
|
||||
@ -35,7 +35,7 @@ namespace AssetRipper.Tools.CabMapGenerator
|
||||
using FileStream stream = File.Create(outputFile);
|
||||
Dictionary<string, string> map = new();
|
||||
LoadFiles(GetAllFilePaths(filesToExport), map);
|
||||
JsonSerializer.Serialize(stream, map, new JsonSerializerOptions() { WriteIndented = true });
|
||||
JsonSerializer.Serialize(stream, map, DictionarySerializerContext.Default.DictionaryStringString);
|
||||
Console.WriteLine("Done!");
|
||||
},
|
||||
filesToExportOption, outputOption);
|
||||
|
||||
@ -0,0 +1,9 @@
|
||||
using System.Text.Json.Serialization;
|
||||
|
||||
namespace AssetRipper.Tools.DependenceGrapher;
|
||||
|
||||
[JsonSourceGenerationOptions(WriteIndented = true)]
|
||||
[JsonSerializable(typeof(Dictionary<string, string>))]
|
||||
internal partial class DictionarySerializerContext : JsonSerializerContext
|
||||
{
|
||||
}
|
||||
@ -86,7 +86,7 @@ namespace AssetRipper.Tools.DependenceGrapher
|
||||
if (File.Exists(cabMapPath))
|
||||
{
|
||||
using FileStream cabMapStream = File.OpenRead(cabMapPath);
|
||||
cabMap = JsonSerializer.Deserialize<Dictionary<string, string>>(cabMapPath) ?? new();
|
||||
cabMap = JsonSerializer.Deserialize(cabMapPath, DictionarySerializerContext.Default.DictionaryStringString) ?? new();
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@ -0,0 +1,10 @@
|
||||
using System.Text.Json.Nodes;
|
||||
using System.Text.Json.Serialization;
|
||||
|
||||
namespace AssetRipper.Tools.JsonSerializer;
|
||||
|
||||
[JsonSourceGenerationOptions(WriteIndented = true)]
|
||||
[JsonSerializable(typeof(JsonObject))]
|
||||
internal partial class JsonObjectSerializerContext : JsonSerializerContext
|
||||
{
|
||||
}
|
||||
@ -43,7 +43,7 @@ internal static class Program
|
||||
try
|
||||
#endif
|
||||
{
|
||||
var file = SchemeReader.LoadFile(fullName);
|
||||
FileBase file = SchemeReader.LoadFile(fullName);
|
||||
if (file is SerializedFile serializedFile)
|
||||
{
|
||||
ExtractJson(serializedFile);
|
||||
@ -88,7 +88,7 @@ internal static class Program
|
||||
foreach ((_, IUnityObjectBase asset) in collection.Assets)
|
||||
{
|
||||
JsonObject assetObject = new();
|
||||
array.Add(assetObject);
|
||||
array.Add((JsonNode)assetObject);
|
||||
assetObject.Add("PathID", asset.PathID);
|
||||
assetObject.Add("ClassID", asset.ClassID);
|
||||
assetObject.Add("Fields", ((JsonAsset)asset).Contents);
|
||||
@ -96,6 +96,6 @@ internal static class Program
|
||||
//Normally, this would be a cause for concern, but the asset won't be used after this.
|
||||
}
|
||||
using FileStream stream = File.Create(Path.Combine(outputDirectory, $"{file.NameFixed}.json"));
|
||||
System.Text.Json.JsonSerializer.Serialize(stream, root, new JsonSerializerOptions() { WriteIndented = true });
|
||||
System.Text.Json.JsonSerializer.Serialize(stream, root, JsonObjectSerializerContext.Default.JsonObject);
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user