Looking at JsonReader source code it appears that intent of the implementation was to have separate nodes and properties entries from JSON tree. However implementation does not follow that intent.
So possibly a bug wrt mismatch between documentation and implementation. Chetan Mehrotra On Mon, Apr 30, 2012 at 8:19 PM, David G. <[email protected]> wrote: > Chetan, > > Thanks - this is perfect - I must be thinking thinking of something else. > > Do you happen to know off the top of your head if the jcrcontent > loader is used for JSON initial-content? Just curious as to what the > documentation I found on the Sling site is in referenced to (using the > "properties" and "nodes" keys). > > On Mon, Apr 30, 2012 at 2:41 AM, Chetan Mehrotra > <[email protected]> wrote: > > Hi David, > > > > Looking at the JsonReader implementation [1] getType > > > > protected int getType(String name, Object object) { > > if (object instanceof Double || object instanceof Float) { > > return PropertyType.DOUBLE; > > } else if (object instanceof Number) { > > return PropertyType.LONG; > > } else if (object instanceof Boolean) { > > return PropertyType.BOOLEAN; > > } else if (object instanceof String) { > > if (name.startsWith(REFERENCE)) return PropertyType.REFERENCE; > > if (name.startsWith(PATH)) return PropertyType.PATH; > > if (name.startsWith(NAME)) return PropertyType.NAME; > > if (name.startsWith(URI)) return PropertyType.URI; > > if (jsonDate.matcher((String) object).matches()) return > > PropertyType.DATE; > > } > > > > // fall back to default > > return PropertyType.UNDEFINED; > > } > > > > It appears that type is inferred from the JSON representation itself. And > > in some cases from propetyName prefixes. So keeping {"foo":1} should > create > > foo of type integer > > > > Chetan Mehrotra > > [1] > > > http://svn.apache.org/viewvc/sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/internal/readers/JsonReader.java?view=markup > > > > On Mon, Apr 30, 2012 at 3:57 AM, David G. <[email protected]> > wrote: > > > >> Can someone refresh my memory how to specify property types in a JSON > >> file used in a Bundle's initial-content? > >> > >> I could swear i remember reading it on the Sling site, but can't find it > >> again -- i swear that sites randomizes its content every few days just > so I > >> can't find anything on it :) > >> > >> I tried using the properties key as seen here: > >> http://sling.apache.org/site/content-loading-jcrcontentloader.html > >> > >> "properties": { > >> "foo": { > >> "value": 1, > >> "type": "Long" > >> } > >> } > >> > >> > >> > >> However that just creates > >> .../node/properties/foo.value = [String] 1 > >> .../node/properties/foo.type = [String] Long > >> > >> As I would expect. > >> > >> Thanks > >> > >> -- > >> David Gonzalez > >> Sent with Sparrow (http://www.sparrowmailapp.com/?sig) > >> > >> >
