johnzon-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Dirk Rudolph (JIRA)" <>
Subject [jira] [Commented] (JOHNZON-153) Support streaming String values using Reader
Date Wed, 17 Jan 2018 18:30:00 GMT


Dirk Rudolph commented on JOHNZON-153:

The issue with JsonString is, that it getString() method is called (once) in [JsonGeneratorImpl#writeJsonValue(java.lang.String,
and so the entire String has to be in memory. I'm working directly with the core APIs (actually
javax.json) not using any binding. 

> Support streaming String values using Reader
> --------------------------------------------
>                 Key: JOHNZON-153
>                 URL:
>             Project: Johnzon
>          Issue Type: Improvement
>          Components: Core
>            Reporter: Dirk Rudolph
>            Priority: Major
> Currently there are 2 ways writing a String value to JsonGenerator:
>  # using {{JsonGenerator#write(java.lang.String, javax.json.JsonValue)}} and {{JsonGenerator#write(javax.json.JsonValue)}}
respectively or
>  # using {{JsonGenerator#write(java.lang.String, java.lang.String)}} and {{JsonGenerator#write(java.lang.String)}}
> where in the former case {{JsonValue}} has to be a {{JsonString}} otherwise a ClassCastException
will be thrown in [JsonGeneratorImpl#writeJsonValue(java.lang.String, javax.json.JsonValue)|].
> It would be great to change that implementation detail so that a consumer can implement
its own implementation of {{JsonValue}} with {{ValueType#STRING}} but working with {{Reader}}
internally so that not the entire String is kept in memory. 
> The use case behind that I use johonzon to write a solr-json formatted list of update
commands for solr and want to use tika to parse (potentially huge) files into plain text
sending them as individual field in my json object. 

This message was sent by Atlassian JIRA

View raw message