elnabo / json2object

Type safe Haxe/JSON (de)serializer
MIT License
66 stars 17 forks source link

@:jcustomwrite should be respected on abstracts. #93

Open EliteMasterEric opened 10 months ago

EliteMasterEric commented 10 months ago

Here is an example of what I am trying to do:

typedef TypeToWrite = {
  var values:Array<EntrypointItem>
};

// This custom writer should be respected but is IGNORED for this abstract
@:jcustomwrite(package.Writers.writeEntrypointItem)
abstract EntrypointItem(Either<String, EntrypointObject>) from Either<String, EntrypointObject> to Either<String, EntrypointObject> {}

I want the values to be written, and parsed, as either a String or an EntrypointObject (which is a typical typedef), detecting what type it is.

There's also the problem that, when implementing writeEntrypointItem, there's no easy way to tell the writer to "write this object" instead of returning a string; you can JSON stringify the value you want to return, but that breaks the indentation of the file.

elnabo commented 10 months ago

Hello,

The custom write/read meta are only supported on fields at the moment.

As for the writer, I guess we could try at some point to modify the returned value and add the current tab level to most lines.

EliteMasterEric commented 10 months ago

As for the writer, I guess we could try at some point to modify the returned value and add the current tab level to most lines.

That would be nice, I'd make it an option the way excluding nulls is.