@@ -7,11 +7,11 @@ JSON objects in particular.
77
88In the spirit of [ ej] [ ej ] , it supports the common formats output by JSON
99decoders such as [ jsone] [ jsone ] , [ jiffy] [ jiffy ] , and [ mochijson2] [ mochijson2 ] .
10- Unlike [ ej] [ ej ] , however, it supports _ all three _ common JSON representations
10+ Unlike [ ej] [ ej ] , however, it supports _ all four _ common JSON representations
1111in Erlang:
1212
13- * ` proplist ` (** default** )(used by [ jsonx ] [ jsonx ] )
14- * ` map ` (common to [ jsone ] [ jsone ] , [ jiffy ] [ jiffy ] , and [ jsx ] [ jsx ] )
13+ * ` map ` (** default** )(common to [ jsone ] [ jsone ] , [ jiffy ] [ jiffy ] , and [ jsx ] [ jsx ] )
14+ * ` proplist ` (used by [ jsonx ] [ jsonx ] )
1515* ` eep18 ` (common to [ jiffy] [ jiffy ] , [ jsone] [ jsone ] , and [ jsonx] [ jsonx ] )
1616* ` struct ` (common to [ mochijson2] [ mochijson2 ] )
1717
@@ -28,27 +28,6 @@ it has been refactored to be a nearly standalone library.
2828
2929## Caveats & known issues
3030
31- ### Deprecated: Erlang 17 or lower
32-
33- jsn will no longer support Erlang 17 or previous Erlang releases. Allowing the
34- ` map ` format to work without breaking Erlang versions that do not support maps
35- (or have an incomplete implementation of maps, i.e., Erlang 17) requires
36- inelegant conditional macros throughout the code and test. This support will
37- be removed in the next major version of jsn.
38-
39- ### Deprecated: encoding and decoding
40-
41- jsn will no longer support encoding and decoding. It will be removed in the next
42- major version of jsn. See [ below] ( #encode-decode ) for more information.
43-
44- ### Deprecated: key sorting functions
45-
46- jsn will no longer support the ` jsn:sort/1 ` , ` jsn:sort_keys/1 ` , and
47- ` jsn:sort_equal/2 ` functions. These functions are incompatible with the ` map `
48- format; the ambiguity of library functions which are only partially compatible
49- with the supported formats is confusing for clients. For this reason, the
50- functions will be removed in the next major version of jsn.
51-
5231### Proplist format concerns
5332
5433It should be noted that the ` proplist ` format supported by jsn is compatible with
@@ -69,25 +48,9 @@ jsn does not plan to support a [jsx][jsx] and [jsone][jsone] compatible
6948format instead. It a vastly more performant data structure that maps naturally
7049to JSON objects without ambiguity.
7150
72- ### Edoc generation broken by map support
73-
74- the ` edoc ` make target (and using ` rebar3 edoc ` ) are currently broken due to a
75- parser problem triggered by the ` IF_MAPS(...) ` macro used to implement the
76- ` map ` format in a backwards-compatible fashion. Edoc support will be restored
77- when this problem is addressed in Erlang or the ` map ` backwards-compatibility
78- constructions are removed from jsn in a future version.
79-
8051## Roadmap
8152
82- ### 2.0.0
83-
84- * ** Remove deprecated functions ` jsn:sort/1 ` , ` jsn:sort_keys/1 ` , and ` jsn:sort_equal/2 ` ** .
85- * ** Remove deprecated support for Erlang 17 and lower** . Full ` map ` support will be
86- assumed by the code, and these older versions will no longer be able to
87- compile jsn.
88- * ** Make ` map ` the default object format** . Maps are superior to proplists for
89- JSON object representation in Erlang, and will be favored primarily by the
90- library.
53+ Future improvements to this library are TBD at this time.
9154
9255## Running
9356
@@ -160,8 +123,8 @@ There are 3 different supported path styles, each with different tradeoffs:
160123## Library functions
161124
162125jsn provides functions to create, append, delete, and transform objects in all
163- supported formats (` proplist ` , ` eep18 ` , and ` struct ` ). This section contains a
164- reference for the primary library functions available.
126+ supported formats (` map ` , ` proplist ` , ` eep18 ` , and ` struct ` ). This section
127+ contains a reference for the primary library functions available.
165128
166129### ` new/0,1,2 ` - Create a new object
167130
@@ -514,18 +477,6 @@ jsn:transform([{key1, T1},{key2, T1},{key4, T1}], NewDestination).
514477% {<<"key2">>,<<"2">>}]
515478```
516479
517- ### < a name = " encode-decode" >< /a > `encode / 1 ` and `decode / 1 ,2 ` - Encoding / decoding JSON for interaction with jsn
518-
519- ** NOTE ** : encoding and decoding are ** deprecated ** , and will be removed in a
520- future version of jsn (`2 .x .x `). the [jsonx ][jsonx ] library that jsn uses for
521- this functionality is abandoned , and users are strongly advised to use any of
522- the many Erlang JSON libraries available :
523-
524- * [jiffy ][jiffy ] (`eep18 ` and `map ` formats )
525- * [jsone ][jsone ] (`eep18 `, `proplist `, and `map ` formats )
526- * [jsx ][jsx ] (`proplist ` and `map ` formats )
527- * [mochijson2 ][mochijson2 ] (`struct ` format )
528-
529480### `equal /3 ,4 ` - Path - wise object comparison
530481
531482* `equal (Paths , OriginalObject , OtherObjectOrObjects )` - Given a list of paths ,
0 commit comments