Text Object Java Objects (TOJOs): an object representation of a multi-line structured text file like CSV

Overview

EO principles respected here DevOps By Rultor.com We recommend IntelliJ IDEA

mvn PDD status Maintainability Maven Central

codecov Hits-of-Code Lines of code License

It's a simple manager of "records" in a text file of CSV, JSON, etc. format. It's something you would use when you don't want to run a full database, but just a list of lines in a file is not enough. You need a file with structured records.

You add this to your pom.xml:

<dependency>
  <groupId>com.yegor256</groupId>
  <artifactId>tojos</artifactId>
</dependency>

Then, to manage books.csv file:

import com.yegor256.tojos.Csv;
import com.yegor256.tojos.MonoTojos;
import com.yegor256.tojos.Tojos;

Tojos tojos = new MonoTojos(new Csv("books.csv"));
Tojo t1 = tojos.add("Object Thinking"); // unique ID
t1.set("author", "David West");
Tojo t2 = tojos.select(
  t -> t.get("author").equals("David West")
).get(0);

Each record has a unique ID, which is also the first column.

How to Contribute

Fork repository, make changes, send us a pull request. We will review your changes and apply them to the master branch shortly, provided they don't violate our quality standards. To avoid frustration, before sending us your pull request please run full Maven build:

$ mvn clean install -Pqulice

You will need Maven 3.3+ and Java 8+.

Comments
  • Update junit5 monorepo to v5.9.1

    Update junit5 monorepo to v5.9.1

    Mend Renovate

    This PR contains the following updates:

    | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | org.junit.jupiter:junit-jupiter-params (source) | 5.9.0 -> 5.9.1 | age | adoption | passing | confidence | | org.junit.jupiter:junit-jupiter-api (source) | 5.9.0 -> 5.9.1 | age | adoption | passing | confidence |


    Configuration

    📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

    🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

    Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

    🔕 Ignore: Close this PR and you won't be reminded about these updates again.


    • [ ] If you want to rebase/retry this PR, click this checkbox.

    This PR has been generated by Mend Renovate. View repository job log here.

    opened by renovate[bot] 10
  • Thread safe Mono

    Thread safe Mono

    During solving the eo issue we faced with the concurrency problem. The problem in MnCsv - it's not a thread safe class. I suggest to implement something like ThreadSafeMono which will make read/write locks for both methods. In other words, we need a thread safe implementation of Mono as a decorator for other Mono classes.

    opened by volodya-lombrozo 9
  • feat(#46) Make `MonoTojo` synchronized on `Mono`

    feat(#46) Make `MonoTojo` synchronized on `Mono`

    We need some synchronization on Mono for each MonoTojo, because we have race condition related toMonoTojo.set operation since all of them (all tojos) are using the same common Mono object.

    Closes: #46

    opened by volodya-lombrozo 5
  • Release `0.17.0` version

    Release `0.17.0` version

    @yegor256 We are needed to release a new version of tojos. I suppose it should be the 0.17.0. It's important to publish new changes related to concurrency problems.

    opened by volodya-lombrozo 4
  • feat(#50): Add read/write concurrency test for `MonoTojo`

    feat(#50): Add read/write concurrency test for `MonoTojo`

    I've added test that checks MonoTojo for concurrent reads and writes. And everything works like a charm. It' means I was mistaken with #50. Actual problem with MnSticky which is not a thread safe: #51

    Closes: #50

    opened by volodya-lombrozo 4
  • replacement and removal of tojos

    replacement and removal of tojos

    @yegor256 how can I replace or remove tojos from catalog? As far as I understood, method set adds a new tojo, but what if I want to replace some attributes of the tojo?

    opened by OlesiaSub 4
  • Update dependency com.jcabi:parent to v0.61.0

    Update dependency com.jcabi:parent to v0.61.0

    Mend Renovate

    This PR contains the following updates:

    | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | com.jcabi:parent (source) | 0.59.0 -> 0.61.0 | age | adoption | passing | confidence |


    Release Notes

    jcabi/jcabi-parent

    v0.61.0

    Compare Source

    See #​142, release log:

    Released by Rultor 2.0-SNAPSHOT, see build log

    v0.60.5

    Compare Source

    See #​141, release log:

    Released by Rultor 2.0-SNAPSHOT, see build log

    v0.60.4

    See #​140, release log:

    Released by Rultor 2.0-SNAPSHOT, see build log

    v0.60.2

    Compare Source

    v0.60.1

    Compare Source

    See #​139, release log:

    Released by Rultor 2.0-SNAPSHOT, see build log

    v0.60.0

    Compare Source


    Configuration

    📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

    🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

    Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

    🔕 Ignore: Close this PR and you won't be reminded about this update again.


    • [ ] If you want to rebase/retry this PR, click this checkbox.

    This PR has been generated by Mend Renovate. View repository job log here.

    opened by renovate[bot] 4
  • chore(deps): update junit5 monorepo to v5.9.1

    chore(deps): update junit5 monorepo to v5.9.1

    Mend Renovate

    This PR contains the following updates:

    | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | org.junit.jupiter:junit-jupiter-params (source) | 5.9.0 -> 5.9.1 | age | adoption | passing | confidence | | org.junit.jupiter:junit-jupiter-api (source) | 5.9.0 -> 5.9.1 | age | adoption | passing | confidence |


    Configuration

    📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

    🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

    Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

    🔕 Ignore: Close this PR and you won't be reminded about these updates again.


    • [ ] If you want to rebase/retry this PR, check this box

    This PR has been generated by Mend Renovate. View repository job log here.

    opened by renovate[bot] 3
  • Update dependency com.jcabi:parent to v0.64.1

    Update dependency com.jcabi:parent to v0.64.1

    Mend Renovate

    This PR contains the following updates:

    | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | com.jcabi:parent (source) | 0.63.2 -> 0.64.1 | age | adoption | passing | confidence |


    Release Notes

    jcabi/jcabi-parent

    v0.64.1

    See #​199, release log:

    Released by Rultor 2.0-SNAPSHOT, see build log


    Configuration

    📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

    🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

    Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

    🔕 Ignore: Close this PR and you won't be reminded about this update again.


    • [ ] If you want to rebase/retry this PR, check this box

    This PR has been generated by Mend Renovate. View repository job log here.

    opened by renovate[bot] 3
  • Update dependency com.opencsv:opencsv to v5.7.1

    Update dependency com.opencsv:opencsv to v5.7.1

    Mend Renovate

    This PR contains the following updates:

    | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | com.opencsv:opencsv (source) | 5.7.0 -> 5.7.1 | age | adoption | passing | confidence |


    Configuration

    📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

    🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

    Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

    🔕 Ignore: Close this PR and you won't be reminded about this update again.


    • [ ] If you want to rebase/retry this PR, click this checkbox.

    This PR has been generated by Mend Renovate. View repository job log here.

    opened by renovate[bot] 3
  • Update dependency com.jcabi:parent to v0.63.2

    Update dependency com.jcabi:parent to v0.63.2

    Mend Renovate

    This PR contains the following updates:

    | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | com.jcabi:parent (source) | 0.63.0 -> 0.63.2 | age | adoption | passing | confidence |


    Release Notes

    jcabi/jcabi-parent

    v0.63.2

    See #​190, release log:

    Released by Rultor 2.0-SNAPSHOT, see build log


    Configuration

    📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

    🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

    Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

    🔕 Ignore: Close this PR and you won't be reminded about this update again.


    • [ ] If you want to rebase/retry this PR, click this checkbox.

    This PR has been generated by Mend Renovate. View repository job log here.

    opened by renovate[bot] 3
  • Some code samples in JavaDocs are not correct

    Some code samples in JavaDocs are not correct

    Code samples, that I think, will not work: first second

    Rust has very useful thing --- executing code samples in documentation. May be in Java it can be done via <profiles> or some framework. I think this is useful from the side of Checkstyle, @yegor256 WDYT?

    opened by MikhailLipanin 1
  • Dependency Dashboard

    Dependency Dashboard

    This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.

    This repository currently has no open or pending branches.

    Detected dependencies

    github-actions
    .github/workflows/codecov.yml
    • actions/checkout v3
    • actions/setup-java v3
    • actions/cache v3
    • codecov/codecov-action v3
    .github/workflows/mvn.yml
    • actions/checkout v3
    • actions/setup-java v3
    • actions/cache v3
    .github/workflows/pdd.yml
    • actions/checkout v3
    .github/workflows/xcop.yml
    • actions/checkout v3
    maven
    pom.xml
    • com.jcabi:parent 0.64.1
    • org.yaml:snakeyaml 1.33
    • javax.json:javax.json-api 1.1.4
    • org.glassfish:javax.json 1.1.4
    • com.opencsv:opencsv 5.7.1
    • org.cactoos:cactoos 0.55.0
    • org.junit.jupiter:junit-jupiter-api 5.9.1
    • org.cactoos:cactoos 0.55.0
    • org.junit.jupiter:junit-jupiter-params 5.9.1

    • [ ] Check this box to trigger a request for Renovate to run again on this repository
    opened by renovate[bot] 0
Releases(0.17.0)
  • 0.17.0(Dec 25, 2022)

    See #54, release log:

    • f2243231695bf2be2a0e69c289bb2e9a5bd4e720 by @rultor: Merge branch '__rultor'
    • 5c52aaa973dfaef1ad20c6cbb8e7c8d994aaa1f9 by @volodya-lombrozo: feat(#51): add synchronization...
    • 725b09fc51e7c820fb6792a8350b59ca3b486f11 by @volodya-lombrozo: feat(#51): change cactoos scop...
    • 7b8db6dd0383a71a2d28475b811c68aefa7b11ee by @volodya-lombrozo: feat(#50): change catctoos sco...
    • 925b443c9ec1939ba954ad94cd0cc8b9803af0d5 by @volodya-lombrozo: feat(#51): add sync blocks for...
    • 70a0ca74be0d2d8a0711b9fded9c8192dcb1225d by @volodya-lombrozo: feat(#51): add test that revea...
    • d0db695403def85489d26cd8d210bc2ae7e7ee75 by @volodya-lombrozo: feat(#50): fix xcop suggestion...
    • 913f1acc071608773da231f162c2a053e81733f0 by @volodya-lombrozo: feat(#50): fix pom.xml
    • 8a5577dab7e568403a6c198e3ba4ddc152ef08f9 by @volodya-lombrozo: feat(#50): Add read/write conv...
    • f59aaf754bcc122a938a477ddad4fc9f89323130 by @renovate[bot]: chore(deps): update junit5 mon...

    Released by Rultor 2.0-SNAPSHOT, see build log

    Source code(tar.gz)
    Source code(zip)
  • 0.16.0(Dec 8, 2022)

    See #48, release log:

    • 65acc37ba2b5a024ccf3b1c22f516338c7253b76 by @rultor: Merge branch '__rultor'
    • 327648558d50948772f9238232ef22e484785e0d by @volodya-lombrozo: feat(#46): fix all qulice sugg...
    • 36c909b803decf49cf9de7f0fe31a7065c5b09a8 by @volodya-lombrozo: feat(#46): add synchronization...
    • d15bd08b2368589e7a6d7074c4cb92bb4b5cf664 by @volodya-lombrozo: feat(#46): ugly implementation
    • 4394f2a1f005a748c739ed6855e47ad79a1ab7f6 by @l3r8yJ: #43 changed lock mechanism

    Released by Rultor 2.0-SNAPSHOT, see build log

    Source code(tar.gz)
    Source code(zip)
  • 0.15.0(Dec 2, 2022)

    See #39, release log:

    • dad7633baf03f1a8b4e1fefe5f08940241b95932 by @l3r8yJ: rowsByThread()
    • 401d9c62c2364dd3814a62813a073df686f310b6 by @l3r8yJ: light assertion
    • f504d8ee56fe22ffb58b2ef313e53b65e2201ecc by @l3r8yJ: qulice
    • b129de74272d84f3c7f46faefdd0fe3114df264d by @l3r8yJ: doc improved
    • 6e921d03730a67e2c24e1c3b3067887de89dbfd6 by @l3r8yJ: review fix
    • 7deee463a969bdab86e16259f6a8ab584a4b4a80 by @l3r8yJ: #39 infinity loop fixed
    • 352b82e4e6926738e74536f5675b79ec90d248c9 by @l3r8yJ: #39 infinity loop fixed
    • bdd559df229ba0f251ca1084e3d4144be16251b6 by @l3r8yJ: #39 infinity loop fixed
    • 17fdf063e6619d4525c57dc252de36858f51cb26 by @l3r8yJ: #39 infinity loop
    • 8054d05617c371482b379cd3c779a8da788c6caa by @l3r8yJ: #39 infinity loop
    • b9636e52fd3730ab05c593be3c437aa67daa9eeb by @l3r8yJ: Merge branch 'master' into 39
    • 12c44479abcd54a2c28dbc6cab2ca593700a0855 by @l3r8yJ: review upd
    • 38c5299a38f4d2f84c9f3621f07940249155d46f by @l3r8yJ: review upd
    • 0cf663cfdff239c72b13393f7468732a9cc5d7b5 by @renovate[bot]: Update dependency com.jcabi:pa...
    • 30c2c9fe5f37f9d9cbcb0461ed9feb760fd07c6b by @l3r8yJ: #39 logic fix
    • 161d85d68c242fce22a3c9c3c38a945ea168bf80 by @l3r8yJ: #39 test refactor
    • 047c14b3440781c740aff690e8fc023c5aff7d14 by @l3r8yJ: #39 logger
    • 9cf3ee157ca37735ae3c2738fbd23c9e24b5e177 by @l3r8yJ: #39 reentrant lock
    • 0c90468a67458d8b80e271592c7ac03c6e0a129d by @l3r8yJ: #39 naming
    • dac3d2311566c5d73cdc68a98813959b0ae9aa33 by @l3r8yJ: #39 doc
    • and 12 more...

    Released by Rultor 2.0-SNAPSHOT, see build log

    Source code(tar.gz)
    Source code(zip)
  • 0.14.0(Oct 23, 2022)

    See #16, release log:

    • b3c11a4e91079a0792482b6fbfc773671c79bff5 by @rultor: Merge branch '__rultor'
    • 21421ad95c5e71dbebecfaa1b00c17135028ee8c by @l3r8yJ: #16 select
    • 6a56c24db35fc6abef33148f92de7216106da6f3 by @l3r8yJ: #16 threads
    • 09d10eb4f9fb10fe63d4427e03ab1fccf0d0544d by @l3r8yJ: #16 final
    • f8baf59e149866bc69fc9a1f0c1545ab49443d85 by @renovate[bot]: Update dependency com.opencsv:...
    • 35b4f1bc0069cfac752a46be47505cab13c92c82 by @l3r8yJ: #16 TjSynchronized, TjSynchron...
    • 4b33e9594690353677a4f48f856143354ce11f96 by @renovate[bot]: Update dependency com.jcabi:pa...
    • 48f165b74552a35b02f4e6a70b5d39585151d94e by @renovate[bot]: Update dependency com.jcabi:pa...
    • 2d57bc671c19ca88a334b5afe39f744d8486a6df by @renovate[bot]: Update dependency org.yaml:sna...
    • c73a14a7ccfffee77cc49de1983f1eea4ac85247 by @yegor256: github actions refreshed
    • 8ab4cc451680031a91c31d6979efd359be5edad8 by @renovate[bot]: Update dependency com.jcabi:pa...
    • c551b913545a8a7222e35ff02d296ac4b36d358a by @yegor256: #32 explained
    • 6900735746c235689f73a20cfd5ddf572741c8df by @rultor: Merge branch '__rultor'

    Released by Rultor 2.0-SNAPSHOT, see build log

    Source code(tar.gz)
    Source code(zip)
  • 0.13.0(Sep 18, 2022)

    See #31, release log:

    • f9a09702148c9ff0cc794fbb1a7b709aed8f9dec by @yegor256: #31 closeable Tojos and Mono
    • ab57100d33afaafe6af65f74be4ca9d2210bd1f1 by @yegor256: #30 extra test
    • d4ecf04f25dbdd03b7fea9e08ba53c1e626746c4 by @yegor256: #30 longer delay
    • 1d3f6802e8847d982b6c95b6501046d90cf38fe1 by @yegor256: #30 typos

    Released by Rultor 2.0-SNAPSHOT, see build log

    Source code(tar.gz)
    Source code(zip)
  • 0.12.0(Sep 18, 2022)

    See #30, release log:

    • 6f9f57e6611ddb1fe648ccfe8141e43764b637f4 by @yegor256: #30 rultor
    • fa1a949d425bd3b1e693cdd5e09dcdaf85e45a33 by @yegor256: #30 flush when necessary
    • b7b2b593025d0129a2bdbc49e689e6170a0dadfe by @yegor256: #30 run on shutdown
    • 3c038cf65fb0ec0f41d309d69df934c80c720065 by @yegor256: #30 MnPostponed
    • e67a48ae35e9fd52770ef791ab008e5171b3a2dd by @yegor256: #30 extra test for massive wri...
    • 385c4573508ab505d210f946ebf19804e5c8e0a5 by @yegor256: #30 MnSticky refactored
    • b501044375348ce14b25f6388c2db834c32c4442 by @yegor256: #30 renamed all classes, with ...
    • b811637afa55b003f7c51df34f90804c1e01b939 by @yegor256: #30 MnMemory and StickyMono
    • 5c8cedabc8cb847f417a838c9a6ed20a9f1927b6 by @renovate[bot]: Update dependency org.yaml:sna...
    • 043810000716bf01c926efcc9a044a1c84003d01 by @yegor256: temurin
    • 039b046de179d583dfd663029c431c76c28b562c by @yegor256: Merge pull request #26 from ye...
    • 325f6b63cd85651e7b9c761c392012b2621763bf by @rultor: Merge branch '__rultor'
    • ed71fee2a765faaea4436f4c1ed46eb4c83402f1 by @yegor256: Merge pull request #25 from ye...
    • f41a735cd6fed88560406806f285f8db652bdc63 by @yegor256: Merge pull request #23 from ye...
    • 3fe51570ae8a498aaed2b04613b31ab936ff0b4e by @renovate[bot]: Update actions/setup-java acti...
    • abe16119f4d190c9b7d141c3c85669b3b78d9441 by @yegor256: Merge pull request #27 from ye...
    • 673754a23dacbb08ec2b8bffef6ead793cc4b0cf by @yegor256: Merge pull request #24 from ye...
    • ff4009bebebc21e18a379971b7f24ccf41f8b5b6 by @renovate[bot]: Update dependency com.opencsv:...
    • 57907623fb46f071715f258c3a590f3ff4032583 by @renovate[bot]: Update codecov/codecov-action ...
    • 164338efd0eece89f8d36aadcc61da735c2af682 by @renovate[bot]: Update actions/checkout action...
    • and 7 more...

    Released by Rultor 2.0-SNAPSHOT, see build log

    Source code(tar.gz)
    Source code(zip)
  • 0.11.0(Jul 22, 2022)

    See #14, release log:

    • 45196d01fe940cae4d4f9e66c99807700c0e4560 by @rultor: Merge branch '__rultor'
    • 863829ff0d9d9547b0e7eb295bb44cc28d2a2609: 869 checkstyle fixes
    • 91b45bc5cb5b56a3337d4e4a7aa1f0787ac324ab: 869 checkstyle fixes
    • fd9ea3a1b649f736dd35334549c4faf40f7e7a98: 869 checkstyle fixes
    • fb8392aa2f5c204a084900e2f4fbc708c9094cc5: 869 checkstyle fixes
    • 45ee452b5461b40015dfdd51aa07fa8738bc8e11: #869 checkstyle fixes
    • 092c3da1070fedf4870d6b4b750bc1ab4752427c by @mximp: Not thread-safe comment
    • b9f82470443307731cbdd38556d541a987697627 by @yegor256: logo off
    • 24b98b9a3ac66feed80016278c8f85091c5eb6f9: #869 introduce cached tojos

    Released by Rultor 1.74.4, see build log

    Source code(tar.gz)
    Source code(zip)
  • 0.10.0(Jul 15, 2022)

    See #13, release log:

    • 1fe855db8d0e50d45637e820492e98b2f070dacf by @yegor256: #13 rultor
    • 6d00d485c5842de26061e3122e90adc7644a138b by @yegor256: #13 parent up
    • 3df1ef5a5010369c1dd7dd04e02e777dd8ecfbb3 by @yegor256: #13 fixed vers
    • f194ef8e5acde1f7587ba9587e38258673cbee57 by @yegor256: #13 year up
    • 5a93b90952eeeb03f235d32bcd7ba11f01594733 by @yegor256: #13 toString
    • 12da8d584a971b05a16366f0ed548d7e4f9c7400 by @yegor256: javadoc
    • b8db01a1c84cffe86c43174fc8f1cc0cd2c4d0df by @rultor: Merge branch '__rultor'
    • 3b48bb2e831eb450a9276e009cdfd743f4a31810 by @kerelape: Update Yaml.java Refactor to m...
    • b17afd7b23319c1dc5f2acb53cbdc14ea30b3b6c by @yegor256: action simplified
    • 570fd1ef69828b63ea2ab2fc8890b5ca42479cc0 by @kerelape: Create YamlTest.java
    • b603fb2d24882e6fd0360c080e64cb6960886093 by @kerelape: Create Yaml.java
    • 730946c4af27e7c2c1493ee7b7db767b810c3f1a by @kerelape: Update pom.xml Add dependency ...

    Released by Rultor 2.0-SNAPSHOT, see build log

    Source code(tar.gz)
    Source code(zip)
  • 0.9.1(Jun 16, 2022)

    See #11, release log:

    • 1e79fd92d606205e39bb5b132525db0a8b230df6 by @yegor256: #11 Csv puts key first
    • b13243bfbd93fae6fefa45a917eba788fe50fe51 by @yegor256: #11 check for key
    • 79806b90bc2b5621ac5b2794e16501eb14c23c0c by @yegor256: #11 json puts key first
    • 29c6a3316a5b6bd97c11a2be19c90fd7ca88aa7d by @yegor256: #10 better error reporting

    Released by Rultor 1.70.6, see build log

    Source code(tar.gz)
    Source code(zip)
  • 0.9.0(Jun 16, 2022)

  • 0.8.2(Dec 27, 2021)

  • 0.8.1(Dec 24, 2021)

  • 0.8.0(Dec 24, 2021)

    See #7, release log:

    • a0876f9b813a9e43d53669f7093c3765e475e308 by @yegor256: #7 ctor off
    • 7f0886683f2f0639ec871623f7f0d99bf6e5a324 by @yegor256: #3 typos

    Released by Rultor 1.70.6, see build log

    Source code(tar.gz)
    Source code(zip)
  • 0.7.0(Dec 24, 2021)

  • 0.6.0(Dec 24, 2021)

  • 0.5.0(Dec 24, 2021)

    See #5, release log:

    • f4e64b0b6866056845c64c1b4a0ef3632125583c by @yegor256: #5 set() with Object
    • 124077b580b943ef80427e98c115e1dd10755184 by @yegor256: #1 key

    Released by Rultor 1.70.6, see build log

    Source code(tar.gz)
    Source code(zip)
  • 0.4.0(Dec 24, 2021)

    See #4, release log:

    • 28a3e72da2d48deb917bb67443e08c3c707efa8d by @yegor256: #4 more ctors
    • e2da7ec71c186380e90199d220f214a77db15a10 by @yegor256: #1 typo
    • 39f3d7a32ae176c34fca8370bd195431fa9919a7 by @yegor256: #1 typo
    • efb26364ba0858a3ddac8c67e303c8b956ae9e17 by @yegor256: #1 typo
    • 9b9df2ae8b54bb62c30473ba49be752b0f1bbe87 by @yegor256: #1 doc
    • 5499e368a732965b320a31da6c11dd0c81e11ce1 by @yegor256: #1 parent 0.57.0
    • b1b78a35ff65ec7750951816b0d78f3d4e1bca32 by @yegor256: #1 badge

    Released by Rultor 1.70.6, see build log

    Source code(tar.gz)
    Source code(zip)
  • 0.3.0(Dec 24, 2021)

    See #1, release log:

    • ef82f89ccb2dc298d5df40e4a52fb82b85c2822f by @yegor256: #1 ver
    • 97499468d5a070d80f236d6a6144c03d9b8a317c by @yegor256: #1 typo
    • 53312edc69f90118c61d4865c8c6483d657506b7 by @yegor256: #1 actions

    Released by Rultor 1.70.6, see build log

    Source code(tar.gz)
    Source code(zip)
  • 0.2.0(Dec 24, 2021)

  • 0.1.0(Dec 23, 2021)

    See #1, release log:

    • dced1b794000ea05e29f64b324775d332ac77e4e by @yegor256: #1 names
    • 20cb986e7ef5ae548148757ec1628faf1a6c94eb by @yegor256: #1 moved from EO

    Released by Rultor 1.70.6, see build log

    Source code(tar.gz)
    Source code(zip)
Owner
Yegor Bugayenko
Lab director at @huawei; author of "Elegant Objects" book series (buy them on Amazon); founder of @zerocracy; creator of @zold-io
Yegor Bugayenko
A Java serialization/deserialization library to convert Java Objects into JSON and back

Gson Gson is a Java library that can be used to convert Java Objects into their JSON representation. It can also be used to convert a JSON string to a

Google 21.7k Jan 8, 2023
A universal types-preserving Java serialization library that can convert arbitrary Java Objects into JSON and back

A universal types-preserving Java serialization library that can convert arbitrary Java Objects into JSON and back, with a transparent support of any kind of self-references and with a full Java 9 compatibility.

Andrey Mogilev 9 Dec 30, 2021
Reflectionless command line parser

jbock is a command line parser, which uses the same annotation names as JCommander and picocli. However it does not use reflection. It is an annotatio

null 74 Jan 4, 2023
Parser of the table of contents file of the 1C platform syntax helper

Парсер файла оглавления синтакс-помощника платформы 1С Что делает? Парсит вот это: Оглавление представляет собой файл без расширения, лежит в файле sh

null 9 Jan 27, 2022
A 250 lines single-source-file hackable JSON deserializer for the JVM. Reinventing the JSON wheel.

JSON Wheel Have you ever written scripts in Java 11+ and needed to operate on some JSON string? Have you ever needed to extract just that one deeply-n

Roman Böhm 14 Jan 4, 2023
A MATLAB-like scientific scripting environment for Kotlin, a simpler Kotlin only version of KotlinLab

KotlinLab: Easy and effective MATLAB-like scientific programming with Kotlin and Java JShell Installation The installation of KotlinLab is very simple

Stergios Papadimitriou 11 Sep 28, 2022
A simple java JSON deserializer that can convert a JSON into a java object in an easy way

JSavON A simple java JSON deserializer that can convert a JSON into a java object in an easy way. This library also provide a strong object convertion

null 0 Mar 18, 2022
A query language for JSON and a template engine to generate text output.

Josson & Jossons Josson is a query language for JSON. Jossons is a template engine to generate text output. Features and Capabilities of Josson Query

Octomix Software 16 Dec 14, 2022
dOOv (Domain Object Oriented Validation) a fluent API for type-safe bean validation and mapping

dOOv (Domain Object Oriented Validation) dOOv is a fluent API for typesafe domain model validation and mapping. It uses annotations, code generation a

dOOv 77 Nov 20, 2022
An expressive Mock Object library for Test Driven Development

JMock Library Maven <dependency> <groupId>org.jmock</groupId> <artifactId>jmock-junit5</artifactId> <version>2.12.0</version> <scope

null 128 Aug 23, 2022
Convert Java to JSON. Convert JSON to Java. Pretty print JSON. Java JSON serializer.

json-io Perfect Java serialization to and from JSON format (available on Maven Central). To include in your project: <dependency> <groupId>com.cedar

John DeRegnaucourt 303 Dec 30, 2022
Java with functions is a small java tools and utils library.

Java with functions is a small java tools and utils library.

null 4 Oct 14, 2022
Set of support modules for Java 8 datatypes (Optionals, date/time) and features (parameter names)

Overview This is a multi-module umbrella project for Jackson modules needed to support Java 8 features, especially with Jackson 2.x that only requires

FasterXML, LLC 372 Dec 23, 2022
A modern JSON library for Kotlin and Java.

Moshi Moshi is a modern JSON library for Android and Java. It makes it easy to parse JSON into Java objects: String json = ...; Moshi moshi = new Mos

Square 8.7k Dec 31, 2022
A fast JSON parser/generator for Java.

fastjson Fastjson is a Java library that can be used to convert Java Objects into their JSON representation. It can also be used to convert a JSON str

Alibaba 25.1k Dec 31, 2022
JSON to JSON transformation library written in Java.

Jolt JSON to JSON transformation library written in Java where the "specification" for the transform is itself a JSON document. Useful For Transformin

Bazaarvoice 1.3k Dec 30, 2022
Java JsonPath implementation

Jayway JsonPath A Java DSL for reading JSON documents. Jayway JsonPath is a Java port of Stefan Goessner JsonPath implementation. News 10 Dec 2020 - R

null 7.6k Jan 4, 2023
A streaming JsonPath processor in Java

JsonSurfer - Let's surf on Json! Why JsonSurfer Streaming No need to deserialize entire json into memory. JsonPath Selectively extract json data by th

null 256 Dec 12, 2022
Sawmill is a JSON transformation Java library

Update: June 25, 2020 The 2.0 release of Sawmill introduces a breaking change to the GeoIpProcessor to comply with the updated license of the MaxMind

Logz.io 100 Jan 1, 2023