johnzon-dev mailing list archives

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

    [ https://issues.apache.org/jira/browse/JOHNZON-153?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16329160#comment-16329160
] 

Dirk Rudolph commented on JOHNZON-153:
--------------------------------------

The issue with JsonString is, that it getString() method is called (once) in [JsonGeneratorImpl#writeJsonValue(java.lang.String,
javax.json.JsonValue)|https://github.com/apache/johnzon/blob/master/johnzon-core/src/main/java/org/apache/johnzon/core/JsonGeneratorImpl.java#L203]
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: https://issues.apache.org/jira/browse/JOHNZON-153
>             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)}}
respectively
> 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)|https://github.com/apache/johnzon/blob/master/johnzon-core/src/main/java/org/apache/johnzon/core/JsonGeneratorImpl.java#L203].
> 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
(v7.6.3#76005)

Mime
View raw message