[
https://issues.apache.org/jira/browse/SOLR-9442?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15667571#comment-15667571
]
Christine Poerschke commented on SOLR-9442:
-------------------------------------------
Hi [~hossman], thanks for your input. Jonny and I discussed offline and here's
what we think.
bq. ... you have to either know beforehand what to expect, or iterate ...
Yes, with the json.nl=arrnvp \{"name":"a","int":1\} representation it helps to
know beforehand what to expect. Our (quite possibly unusual) use case is
actually to parse-and-convert the JSON response into an object validated by a
_schema_.
We agree that a \{"name":"a", "type":"int", "value":1\} representation would
help avoid iterating since clients can rely on the existence of the exact 3
attributes.
How about supporting both json.nl=arrnvp (Named Value Pair) and json.nl=arrntv
(Name Type Value) representations? Attached SOLR-9442-arrntv.patch shows how
both can easily share most code. What do you think?
> Add json.nl=arrnvp (array of NamedValuePair) style in JSONResponseWriter
> ------------------------------------------------------------------------
>
> Key: SOLR-9442
> URL: https://issues.apache.org/jira/browse/SOLR-9442
> Project: Solr
> Issue Type: Improvement
> Security Level: Public(Default Security Level. Issues are Public)
> Components: Response Writers
> Reporter: Jonny Marks
> Assignee: Christine Poerschke
> Priority: Minor
> Fix For: master (7.0), 6.4
>
> Attachments: SOLR-9442-arrntv.patch, SOLR-9442.patch,
> SOLR-9442.patch, SOLR-9442.patch
>
>
> The JSONResponseWriter class currently supports several styles of NamedList
> output format, documented on the wiki at http://wiki.apache.org/solr/SolJSON
> and in the code at
> https://github.com/apache/lucene-solr/blob/master/solr/core/src/java/org/apache/solr/response/JSONResponseWriter.java#L71-L76.
> For example the 'arrmap' style:
> {code}NamedList("a"=1,"b"=2,null=3) => [{"a":1},{"b":2},3]
> NamedList("a"=1,"bar”=“foo",null=3.4f) => [{"a":1},{"bar”:”foo"},{3.4}]{code}
> This patch creates a new style ‘arrnvp’ which is an array of named value
> pairs. For example:
> {code}NamedList("a"=1,"b"=2,null=3) =>
> [{"name":"a","int":1},{"name":"b","int":2},{"int":3}]
> NamedList("a"=1,"bar”=“foo",null=3.4f) =>
> [{"name":"a","int":1},{"name":"b","str":"foo"},{"float":3.4}]{code}
> This style maintains the type information of the values, similar to the xml
> format:
> {code:xml}<lst name=“someField”>
> <int name=“a”>1</int>
> <str name=“bar”>foo</str>
> <float>3.4</float>
> </lst>{code}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]