aboutsummaryrefslogtreecommitdiff
path: root/core/encoding/json/marshal.odin
Commit message (Collapse)AuthorAgeFilesLines
* Merge pull request #5882 from IllusionMan1212/custom-json-marshallingJeroen van Rijn2026-01-011-0/+79
|\ | | | | encoding/json: custom json (un)marshalling
| * Make custom JSON (un)marshalers more like core:fmt'sJeroen van Rijn2025-12-101-26/+94
| |
| * encoding/json: error handling for custom (un)marshallersHisham Aburaqibah2025-12-021-2/+2
| |
| * encoding/json: custom json (un)marshallingIllusionMan12122025-12-021-19/+30
| |
* | [encoding/json] Fix Escapes When Marshallingdozn2025-12-301-3/+3
| | | | | | | | | | | | Fixes https://github.com/odin-lang/Odin/issues/6060 and https://github.com/odin-lang/Odin/issues/6075 The boolean "true" was setting `html_safe` instead of `for_json`. Chalk one up for the "use enums instead of booleans" crowd.
* | Moved `first_iteration` up a couple lines so it makes sense readability-wise.dozn2025-12-301-1/+1
| |
* | Add JSON5/SJSON Comments When Marshallingdozn2025-12-291-0/+26
|/ | | | | | Allows user-facing JSON5/SJSON to have comments explaining field usage. `json.Marshal_Options.pretty` must be enabled since we only use single-line comments (not to mention it wouldn't be terribly useful without `pretty` set anyways). We don't escape anything, so `\n` will display as "\n", but you're still able to enter in a proper newline character and it'll be displayed on multiple lines.
* Followup fix to #4895Courtney Strachan2025-10-051-3/+1
|
* Merge branch 'odin-lang:master' into masterCourtney Strachan2025-10-061-8/+8
|\
| * Begin supporting `string16` across the core librarygingerBill2025-08-021-4/+4
| |
| * Clarify `strconv.append_*` to `strconv.write_*`Feoramund2025-06-051-4/+4
| |
* | Fixed json null value parsingCourtney Strachan2025-03-021-1/+7
|/
* encoding/json: marshal enumerated arrays to objects with key-value pairsjkenda2025-02-011-3/+13
|
* Remove relative types from json marshallergingerBill2024-11-141-6/+0
|
* Merge pull request #3910 from VladPavliuk/json-add-int-key-map-supportgingerBill2024-07-141-33/+45
|\ | | | | Allow to `marshal` and `unmarshal` maps with int keys
| * Merge branch 'master' into json-add-int-key-map-supportVladPavliuk2024-07-141-0/+5
| |\
| * | Allow to `marshal` and `unmarshal` maps with int keysVladPavliuk2024-07-131-33/+45
| | |
* | | Reduce the size of `runtime.Type_Info`gingerBill2024-07-141-1/+1
| |/ |/|
* | Align ignore syntax of json tags with fmt, cborVladPavliuk2024-07-141-3/+6
| |
* | Add support of `ignore` tag for `json.marshal`VladPavliuk2024-07-131-1/+3
|/
* Fix loads of indentation issues with mixing spaces and tabsgingerBill2024-06-291-4/+4
|
* Merge branch 'odin-lang:master' into fix-omitempty-commakorvahkh2024-06-131-2/+2
|\
| * Port `tests\core\encoding\json`Jeroen van Rijn2024-06-021-2/+2
| |
* | encoding/json: Fix struct marshal() emitting comma after omitted fieldkorvahkh2024-05-271-15/+17
|/ | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously: ```odin package main import "core:fmt" import "core:encoding/json" T :: struct { a: string `json:",omitempty"`, b: string, } main :: proc() { data, _ := json.marshal(T{b = "foo"}) fmt.println(string(data)) } ``` would output: ``` {,"b":"foo"} ``` which is not correct. Also cleaned up some whitespace while I'm at it.
* fix(core/encoding/json): remove Unsupported_Type return when marshalling bit_setIllusionMan12122024-05-251-2/+0
|
* encoding/json: Properly marshal `#no_nil` unionskorvahkh2024-05-111-5/+8
| | | | | Previously the first variant of a `#no_nil` would always be output as `null`, and following variants would be treated as the wrong type.
* Fix `omitempty` in `json.marshal`Feoramund2024-04-271-1/+1
|
* Update numerous package declaration namesgingerBill2024-04-181-1/+1
|
* Add `json:"name,omitempty"`gingerBill2024-04-101-8/+56
|
* Allow for comma-separate json names `json:"name,flag"`gingerBill2024-04-101-0/+1
|
* correct newly found vetsLaytan Laats2024-04-031-11/+10
|
* Json: fields on structs like 'using _: T' will now have T's fieldsFranz Höltermann2024-03-261-14/+27
| | | | | | marshalled directly into the parent type without an '"_":{ ... }'. This seems like desirable behavior to me, since you can't access the fields with 'Parent_Type._.field' either.
* Merge pull request #3215 from blob1807/json-better-enum-supportgingerBill2024-03-061-1/+15
|\ | | | | core:encoding/json Add support for writing enum value names
| * Apply suggestions from code review blob18072024-03-041-2/+2
| | | | | | | | | | Fixing spelling mistakes pointed out & fixed by layton. Co-authored-by: Laytan <laytanlaats@hotmail.com>
| * convert spaces to tabsblob18072024-03-041-1/+1
| |
| * Return underlining value instead of panicingblob18072024-03-041-4/+6
| | | | | | | | | | | | | | | | when no name it found. Renamed use_enum_value_names to use_enum_names it get the same point across & inline with the reflect procs
| * changed to use reflect.enum_name_from_value_anyblob18072024-03-011-34/+2
| |
| * Merge branch 'odin-lang:master' into json-better-enum-supportblob18072024-03-011-0/+3
| |\
| * | add all inter types to switchblob18072024-02-211-3/+27
| | |
| * | replace spaces with tabsblob18072024-02-211-19/+19
| | |
| * | add missing commablob18072024-02-211-1/+1
| | |
| * | Add better support for Enums in jsonblob18072024-02-211-1/+21
| | | | | | | | | | | | Can now output enum value's name instead of its underlineing value
| * | Revert json union fixblob18072024-02-211-9/+0
| | |
| * | Fix bug https://github.com/odin-lang/Odin/issues/3173blob18072024-02-211-0/+9
| | |
* | | Fix #3173gingerBill2024-03-061-0/+5
| | |
* | | Fix #3250gingerBill2024-03-061-1/+3
| |/ |/|
* | Begin work adding `bit_field`gingerBill2024-02-221-0/+3
|/
* Replace `core:*` to `base:*` where appropriategingerBill2024-01-281-1/+1
|
* Made sure temp guard for sorting map keys in json marshal code ignores temp ↵Karl Zylinski2024-01-221-3/+3
| | | | allocator
* Added temp allocator guard to json.marshal, in case we temp alloc when ↵Karl Zylinski2023-11-011-0/+3
| | | | sorting map kesy