Copybara import of the project: - fa918ff33f8e7cf00d527328b3b4bdf85e783b90 Initial contribution by Dmitry Kornilov <dmitry.kornilov@oracle.com> - c0e17511f5a89075629e7354b34d557bbf344bd4 Merge pull request #83 from eclipse-ee4j/notice_contribut... by Dmitry Kornilov <maiden168@gmail.com> - 6d6f8a5c42c68d71ebeaab584d317c43dab27f10 Changed groupId and artifactId. Fixes #91 (#92) by Guillermo González de Agüero <ggam@users.noreply.github.com> - 851e55c5ca70a235560fc48aca057459e9edff15 spec-version-maven-plugin update to the latest version (#... by Dmitry Kornilov <maiden168@gmail.com> - ceb13aaba8edeb949609ae98f0fabf931ed11f47 JDK 11 preparation and jakarta uptake. (#101) by Tomáš Kraus <tomas.kraus@oracle.com> - 0f3fcc9ad63f44687a60da7b69f1e56c9a4829de Fixed Export-Package OSGI header. (#103) by Tomáš Kraus <tomas.kraus@oracle.com> - 431d4bdba7d1478161696a1647e6d48fad6fc9d6 Merge pull request #106 from Tomas-Kraus/master by Roman Grigoriadi <bravehorsie@gmail.com> - 9f3f0c49a31d4c11ae3a46ea21dcf97e453fb6dd Update readme by Andrew Guibert <andy.guibert@gmail.com> - 25a9a71ce56c86eb21bdef3cd2fd269d793206ed Update README.md by Dmitry Kornilov <dmitry.kornilov@oracle.com> - 7c095dd272e7ebf969d570cf77b4e366b9a1fd57 Fix javadoc failure since JDK 11.0.2, update checkstyle p... by Roman Grigoriadi <roman.grigoriadi@oracle.com> - 92c89c5a237261c3dbd8ec22000708c776889728 User's guide (#132) by Dmitry Kornilov <dmitry.kornilov@oracle.com> - 466645654a5c2b95c1aa5a27d9292bb56018db44 Merge pull request #139 from m0mus/gitignore by Andrew Guibert <andy.guibert@gmail.com> - c211532612b5ac026e2e1227b8cfe6d1e389b580 Added JDK11 build support (#138) by Dmitry Kornilov <dmitry.kornilov@oracle.com> - d0dd0aa83482a01e6648604c6fa62824763d45c3 Boilerplate spec (#144) by Dmitry Kornilov <dmitry.kornilov@oracle.com> - c02dc37c4357d0402cbb3df0d6f6e65c9818b34e Spec name and references fixed (#142) by Dmitry Kornilov <dmitry.kornilov@oracle.com> - 7fcf4882fe6756876068eea761184c3121bdd3d8 Project name changed in various text files (#145) by Dmitry Kornilov <dmitry.kornilov@oracle.com> - 08e84327b74d717f74c653c4036b047a8bcd5916 Update README.md by Dmitry Kornilov <dmitry.kornilov@oracle.com> - f4e275e108983456a81c74624991bc316e62537f Updated boilerplate spec template, minor fixes (#152) by Dmitry Kornilov <dmitry.kornilov@oracle.com> - ee71e515d12c3d823e9649ff26361cf364cd6909 Fixed copyright plugin setup. by Tomas Kraus <Tomas.Kraus@oracle.com> - ccc03f16817af3e5c38218e1cf4cfa5a23abe01a Fixed enforcer plugin setup. by Tomas Kraus <Tomas.Kraus@oracle.com> - 3b715994b2594645b315522a0575cb1106a14ae5 JSON-P API dependency updated to 1.1.6 (#156) by Tomáš Kraus <tomas.kraus@oracle.com> - e84c8be88b968b44e0e4bf53fba263b15d364be8 Spec status propagation (#159) (#162) by Dmitry Kornilov <dmitry.kornilov@oracle.com> - df773b773618929a169ff9b5ee0187910f635095 JDK links in javadoc fixed (#163) by Dmitry Kornilov <dmitry.kornilov@oracle.com> - 9d6fcdcb881f31b97f3e71c6267710155e53b9b7 Rolling back to JSONP 1.1.5 (#166) by Dmitry Kornilov <dmitry.kornilov@oracle.com> - b29bc1edff86b66f2b57476b394e5da19f47ac40 Copyright is upated to Eclipse Foundation (#174) by Dmitry Kornilov <dmitry.kornilov@oracle.com> - dea2d2c89bc9d9e024b639ff42094241c61bffe7 Merge pull request #194 from mkarg/GH-193 by Andrew Guibert <andy.guibert@gmail.com> - 1aaa616ac8d51a1b2a12c3c5653726417275c0a3 Merge pull request #203 from aguibert/readme-badges by Andrew Guibert <andy.guibert@gmail.com> - 6b0f745c0a0749c59e55fc3024f113df9257e964 Merge pull request #202 from aguibert/spec-initial by Andrew Guibert <andy.guibert@gmail.com> - b22baa619443b6aca0ff100dbc2af51199d07a48 Merge pull request #208 from moghaddam/master by Andrew Guibert <andy.guibert@gmail.com> - 419c2876ead42a45ce22b0c7cbef00d7e14468e2 Merge pull request #216 from aguibert/readme-jakarta-links by Andrew Guibert <andy.guibert@gmail.com> - f950c0f163a93aa551c45160218fa10d8b7174ea Merge pull request #210 from aguibert/propNamingStrat-doc... by Andrew Guibert <andy.guibert@gmail.com> - 32caa549925a24d2162f21864deea61033a2823c Package renamed: javax -> jakarta by Tomas Kraus <Tomas.Kraus@oracle.com> - f931164600d712b6067bf8279d7124e8723c9dc4 Updated jsonp and parent pom versions. by Tomas Kraus <Tomas.Kraus@oracle.com> - 8f4334836e3029be27a2692c4925fdcc8855e5e0 Specification and documentation versions update. by Tomas Kraus <Tomas.Kraus@oracle.com> - c84e58545a4dfeeeabd67f5a5e195687f6e5ec0a Oops, spec has only 2 digits versioning. by Tomas Kraus <Tomas.Kraus@oracle.com> - 9c248fe914349d8d1dae7d9f172bb33feb2b9aea Merge pull request #221 from aguibert/tck by Andrew Guibert <andy.guibert@gmail.com> - 70a607f500828317ae1b4767d3c948abe1e00eac Merge pull request #226 from aguibert/copyright-build-error by Andrew Guibert <andy.guibert@gmail.com> - 599481cab6ecccf9eae3b6ab33bef174ec3c11ef Merge pull request #227 from aguibert/tck-javadoc-fix by Andrew Guibert <andy.guibert@gmail.com> - 5a461c9ad59598c0a2ac54d0f44d4218d61f49ba Merge pull request #242 from jGauravGupta/jsonb-api-export by Andrew Guibert <andy.guibert@gmail.com> - 9f4d42f07e88644addb4d12a7dff0a387fab0a4e Merge pull request #245 from jGauravGupta/fix-spec-version by David Král <david.k.kral@oracle.com> - ab7d16dbd62427b948a1052b527135470f0fd6e8 Merge pull request #247 from aguibert/tck-jakarta-inject-2 by Andrew Guibert <andy.guibert@gmail.com> - f127e35c67bb3bbfd69cc4a83289d10f04ce6c2f Merge pull request #248 from mcserra/update-EFSL-for-spec... by Andrew Guibert <andy.guibert@gmail.com> - 78489bc313d0862710b921f1f4adca5a2de35a44 Merge pull request #254 from m0mus/updake_jsonp_2_0 by Andrew Guibert <andy.guibert@gmail.com> - 3555fc0718bebb25cf938dc5d8d0c6146c3bb5f9 Merge pull request #258 from dblevins/javax-renames by Andrew Guibert <andy.guibert@gmail.com> - f14b0c86e5860780e095cd075542d317c014b8c4 Spec version and javadocs copyright year updated (#259) by Dmitry Kornilov <dmitry.kornilov@oracle.com> - 53ea9c460662bcc395dc2d0e1af3635c12c474ca Copyright year change (#260) by Dmitry Kornilov <dmitry.kornilov@oracle.com> - cc5273d2b0ff06f778747428fb672830844337be Merge pull request #263 from eclipse-ee4j/dependabot/mave... by Andrew Guibert <andy.guibert@gmail.com> - 87321051ddd85e9848606d978110d42a2c3549b3 Update API version of jakarta.json.bind:jakarta.json.bind... by Eclipse JSON-B Bot <jsonb-bot@eclipse.org> - c74a6f215b054c3f8f72c2b5b6c2b4afd43c857c Update API version of jakarta.json.bind:jakarta.json.bind... by Eclipse JSON-B Bot <jsonb-bot@eclipse.org> - ad33b9fb649998b37b1f8a39881e06c52697fa6b Bump junit from 4.12 to 4.13.1 in /api by dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> - ab1b70d3d105dfc80680316f116570f3ba84d260 Bump checkstyle from 8.18 to 8.29 in /api by dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> - b249b4a488b802f323ddce4e3d3a626b85f89fe7 Null value deserialization into the JsonValue.NULL (#273) by David Král <david.k.kral@oracle.com> - e9ae2968e15b219edbdb77117f46fd9df55e14a6 TCK test UntypedMappingTest.testArrayMapping fixed (#275) by David Král <david.k.kral@oracle.com> - 2aaadf8df6b026781f54ef625c09bdbbee609e7b JsonbProperty.nillable deprecated in favour of JsonbNilla... by David Král <david.k.kral@oracle.com> - 12d5b6e3bb618a276195c4d659c2c5e7ede5024e JsonbTypeDeserializer annotation is now supported on crea... by David Král <david.k.kral@oracle.com> - de9d2bccd29d3996b65dbd4cd63b582a4df081d8 Fix of the new TCK test for deserializer on the JsonbCrea... by David Král <david.k.kral@oracle.com> - 2afb4d421bb6ff361a83fc924bfb461e0f13ea99 JSON-B 3.0.0 and github actions (#288) by David Král <david.k.kral@oracle.com> - 6e9cff260e5f29f9042a3a6f3180176196b9941f Optional creator parameters (#285) by David Král <david.k.kral@oracle.com> - 20353730149154575bc0fb4c14f5f65929b3b3f3 JsonbCreator optional parameter TCK fix (#290) by David Král <david.k.kral@oracle.com> - 21809d76cdeb74cc31507c85049995d8788d4dbb JsonbTypeAdapter is now allowed on the creator paramters ... by David Král <david.k.kral@oracle.com> - f215fe725fa35085b92f6a636778f60291afdfd8 Readme version update (#293) by David Král <david.k.kral@oracle.com> - 28f0ee878078826597f5436b6bc27c1a13be0ecb JsonbCreator parameter optionality changed (#294) by David Král <david.k.kral@oracle.com> - 7b383bc79979f6f019abbe89b38d8143d9ca81a9 Optional creator parameter tck test fix (#295) by David Král <david.k.kral@oracle.com> - d742983ef9e93568fc83b755053cfedf97e4458a Updating User's Guide link (#297) by Dmitry Kornilov <dmitry.kornilov@oracle.com> - 34327df5d7f0f5465a7b6eceaef60a50869106bf Jsonb polymorphism support (#284) by David Král <david.k.kral@oracle.com> - 3f6d7d40d1f33551e8699198bd3b1af4db8a7b05 More polymorphism TCKs added (#300) by David Král <david.k.kral@oracle.com> - 703826016ebd5aa439d56d272c073e1961415ad4 Wrapping object and class name handling removed (#303) by David Král <david.k.kral@oracle.com> - 46a30c12cf16bbbf863e8f40e845aef81e16852a TCK reworked to JUnit 5 and reformatted (#276) by David Král <david.k.kral@oracle.com> - 189b0d379fc809da9f93cb6cb3d54e76dda411ae Copyright year changed (#308) by David Král <david.k.kral@oracle.com> - ee9043e8039bea2891b746b0d1d82b9ffdfce4eb jsonb documentation moved and updated by Alwin Joseph <44426046+alwin-joseph@users.noreply.github.com> - 2a48519ebcd1f674fcebc1dd52d26a085d68595a correct version/copyrights/dates by Alwin Joseph <44426046+alwin-joseph@users.noreply.github.com> - 4515415835825469917c813ac40dbfce71b77711 jsonb signature test migration. by gurunandan.rao@oracle.com <gurunandan.rao@oracle.com> - 89839321c4432059446cb8da1a0cee90267d5b1f jsonb tck bundle generation (#309) by Gurunandan Rao <gurunandan.rao@oracle.com> - 052e17c91d50018cfe814f10d009bffb0852c249 Fixing up number tck test (#311) by David Král <david.k.kral@oracle.com> - 87bafc0b0426fbfd84d1090b98e4983320808457 SNAPSHOT version returned to the jsonb tck version (#312) by David Král <david.k.kral@oracle.com> - b9ea7b61f5c91c7db56a78055d827f9e0706e114 technical merge of 3.0.0-RC1 into master (release tag) by David Král <david.k.kral@oracle.com> - b916884ee1ec6c8b9077c29ab92bc60613d5525b add pom.xml for dist generation. (#315) by Gurunandan Rao <gurunandan.rao@oracle.com> - 362c22e7bca4d8dd354370401cda38bc74a44cec minor wording changes (#316) by David Král <david.k.kral@oracle.com> - 54c42c9d21c6d18a3b1e8b9d6385af8cdec9a1a4 Number of standalone tck tests updated (#317) by David Král <david.k.kral@oracle.com> - c1d3b7710f71b2bdef1597fd7cf7043d91675c2b javadoc assertion files for 3.0 (#320) by Alwin Joseph <44426046+alwin-joseph@users.noreply.github.com> - ad73dd30ee850536fe45ef88e809b5b157af06cf Userguide updates (#321) by David Král <david.k.kral@oracle.com> - 29a2568fd15bb03d72e97ea1cfc176e982c68317 userguide and tck dist eftl bundle tuning (#322) by David Král <david.k.kral@oracle.com> - 7340b84ec2a5bbdeb492d425eccee6d65443e97c tck dist update (#323) by David Král <david.k.kral@oracle.com> - 0c6e3084154d5841d0e8e4e51cc2a51a97447631 use classpath for jakarta api libraries. by Gurunandan Rao <gurunandan.rao@oracle.com> - 8c9444e1bd02ea920a8669b27e936807fdb003fa Merge pull request #354 from jakartaee/3.0.0-BRANCH by David Král <david.k.kral@oracle.com> - 5dfc190c3ed24ada3b29b5665d5577a01b5836dc Merge pull request #339 from mkarg/patch-1 by David Král <david.k.kral@oracle.com> - 1ec8fa1fca70f52eaac627997c29af7fae3241a3 Merge pull request #249 from mcserra/#237 by David Král <david.k.kral@oracle.com> - f3a2332cc1a58b8da1767c6541ea86be3923b733 Before 3.0.1 release (#355) by David Král <david.k.kral@oracle.com> - 2f3154010a16cb4569595c3c16125661f9407038 Update API version of jakarta.json.bind:jakarta.json.bind... by Eclipse JSON-B Bot <jsonb-bot@eclipse.org> GitOrigin-RevId: 2f3154010a16cb4569595c3c16125661f9407038 Change-Id: I6a3789935952418f4477c665f9295ed9bca19e65
JSON-B is a standard binding layer for converting Java objects to/from JSON messages. It defines a default mapping algorithm for converting existing Java classes to JSON, while enabling developers to customize the mapping process through the use of Java annotations.
<!-- https://mvnrepository.com/artifact/jakarta.json.bind/jakarta.json.bind-api --> <dependency> <groupId>jakarta.json.bind</groupId> <artifactId>jakarta.json.bind-api</artifactId> <version>3.0.0</version> </dependency>
Suppose we have the following Java object, which we want to represent with JSON data:
public class User { public long id; public String name; public int age; }
Using the default mapping, this class can be serialized (as-is) to a JSON string:
Jsonb jsonb = JsonbBuilder.create(); User bob = new User(); bob.id = 1234; bob.name = "Bob"; bob.age = 42; String bobJson = jsonb.toJson(bob); System.out.println(bobJson); // {"id":1234,"name":"Bob","age":42}
Likewise, JSON data can be deserialized back into Java objects:
Jsonb jsonb = JsonbBuilder.create(); String aliceJson = "{\"id\":5678,\"name\":\"Alice\",\"age\":42}"; User alice = jsonb.fromJson(aliceJson, User.class);
The JSON-B TCK tests are produced as a Maven artifact where the tests use Arquillian + JUnit. To run the TCK tests using your implementation, include the TCK module and apply the appropriate Arquillian container. See the Eclipse Yasson repository for an example of this.