json-lib-user Mailing List for Json-lib (Page 2)
Brought to you by:
aalmiray
You can subscribe to this list here.
2006 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
(1) |
Aug
(6) |
Sep
(5) |
Oct
(1) |
Nov
(7) |
Dec
(5) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2007 |
Jan
(4) |
Feb
(5) |
Mar
(1) |
Apr
|
May
(11) |
Jun
(3) |
Jul
(12) |
Aug
(4) |
Sep
(8) |
Oct
(11) |
Nov
(7) |
Dec
(30) |
2008 |
Jan
(11) |
Feb
(15) |
Mar
(8) |
Apr
|
May
(9) |
Jun
(21) |
Jul
(1) |
Aug
(4) |
Sep
(1) |
Oct
|
Nov
(3) |
Dec
(8) |
2009 |
Jan
(6) |
Feb
(1) |
Mar
(3) |
Apr
(5) |
May
(10) |
Jun
(3) |
Jul
(1) |
Aug
|
Sep
(4) |
Oct
(1) |
Nov
(1) |
Dec
(1) |
2010 |
Jan
|
Feb
(2) |
Mar
(2) |
Apr
(3) |
May
(5) |
Jun
(1) |
Jul
|
Aug
(4) |
Sep
|
Oct
(1) |
Nov
(4) |
Dec
|
2011 |
Jan
|
Feb
(1) |
Mar
(1) |
Apr
|
May
|
Jun
(3) |
Jul
|
Aug
(1) |
Sep
|
Oct
|
Nov
(8) |
Dec
|
2012 |
Jan
|
Feb
|
Mar
(4) |
Apr
|
May
(1) |
Jun
|
Jul
(1) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2013 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(1) |
Jun
(1) |
Jul
|
Aug
|
Sep
|
Oct
(1) |
Nov
|
Dec
|
2014 |
Jan
(1) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2017 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(2) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: jimmy Z. <jz...@xi...> - 2011-02-27 09:00:21
|
VTD-XML 2.10 is now released. It can be downloaded at https://sourceforge.net/projects/vtd-xml/files/vtd-xml/ximpleware_2.10/. This release includes a number of new features and enhancement. * The core API of VTD-XML has been expanded. Users can now perform cut/paste/insert on an empty element. * This release also adds the support of deeper location cache support for parsing and indexing. This feature is useful for application performance tuning for processing various XML documents. * The java version also added support for processing zip and gzip files. Direct processing of httpURL based XML is enhanced. * Extended Java version now support Iso-8859-10~16 encoding. * A full featured C++ port is released. * C version of VTD-XML now make use of thread local storage to achieve thread safety for multi-threaded application. * There are also a number of bugs fixed. Special thanks to Jozef Aerts, John Sillers, Chris Tornau and a number of other users for input and suggestions |
From: Pedro P. <ped...@we...> - 2010-11-18 16:17:51
|
Also, shouldn't you have some getters/setters in there? On Nov 18, 2010, at 3:16 PM, Everton Agner wrote: > Hi! > > I need to convert this JSON string > > {"Name":"Apple","Expiry":"\/Date(1230429600000-0200)\/","Price":3.99,"Sizes":["Small","Medium","Large"]} > > To this JavaBean > > public class Product > { > private String name; > private Date expiry; > private BigDecimal price; > private String[] sizes; > } > > With this code > > JSONObject json = JSONObject.fromObject(jsonText); > > Product p = (Product) JSONObject.toBean(json, Product.class); > > > And I'm getting this exception: > > Exception in thread "main" net.sf.json.JSONException: java.lang.NoSuchMethodException: Unknown property 'Sizes' on class 'class Product' > > > I don't think it's because os case sensitivity (it's an Object created on C#, that's why the properties are Pascal Case). > > What do i need to do to make this work? I searched for it and got nothing... > > > Thanks! > > _______________________ > Everton Agner Ramos > ------------------------------------------------------------------------------ > Beautiful is writing same markup. Internet Explorer 9 supports > standards for HTML5, CSS3, SVG 1.1, ECMAScript5, and DOM L2 & L3. > Spend less time writing and rewriting code and more time creating great > experiences on the web. Be a part of the beta today > http://p.sf.net/sfu/msIE9-sfdev2dev_______________________________________________ > json-lib-user mailing list > jso...@li... > https://lists.sourceforge.net/lists/listinfo/json-lib-user |
From: Pedro P. <ped...@we...> - 2010-11-18 15:45:49
|
Being that java is case sensitive, and JSON is case sensitive, I'd risk saying that capitalization IS indeed your problem On Nov 18, 2010, at 3:16 PM, Everton Agner wrote: > Hi! > > I need to convert this JSON string > > {"Name":"Apple","Expiry":"\/Date(1230429600000-0200)\/","Price":3.99,"Sizes":["Small","Medium","Large"]} > > To this JavaBean > > public class Product > { > private String name; > private Date expiry; > private BigDecimal price; > private String[] sizes; > } > > With this code > > JSONObject json = JSONObject.fromObject(jsonText); > > Product p = (Product) JSONObject.toBean(json, Product.class); > > > And I'm getting this exception: > > Exception in thread "main" net.sf.json.JSONException: java.lang.NoSuchMethodException: Unknown property 'Sizes' on class 'class Product' > > > I don't think it's because os case sensitivity (it's an Object created on C#, that's why the properties are Pascal Case). > > What do i need to do to make this work? I searched for it and got nothing... > > > Thanks! > > _______________________ > Everton Agner Ramos > ------------------------------------------------------------------------------ > Beautiful is writing same markup. Internet Explorer 9 supports > standards for HTML5, CSS3, SVG 1.1, ECMAScript5, and DOM L2 & L3. > Spend less time writing and rewriting code and more time creating great > experiences on the web. Be a part of the beta today > http://p.sf.net/sfu/msIE9-sfdev2dev_______________________________________________ > json-lib-user mailing list > jso...@li... > https://lists.sourceforge.net/lists/listinfo/json-lib-user |
From: Everton A. <ton...@gm...> - 2010-11-18 15:42:56
|
There is getters and setters, don't worry about it, i just ommited them in the snippet code. You were right, it was capitalization. I thought it wasn't because of the output it sent: 18/11/2010 13:36:56 net.sf.json.JSONObject toBean AVISO: Tried to assign property Name:java.lang.String to bean of class Product 18/11/2010 13:36:56 net.sf.json.JSONObject toBean AVISO: Tried to assign property Expiry:java.lang.String to bean of class Product 18/11/2010 13:36:56 net.sf.json.JSONObject toBean AVISO: Tried to assign property Price:java.lang.Float to bean of class Product It seemed that it worked on every property except for "Sizes" (where it throwed an exception). It pointed me to a wrong direction. Anyways... is there any way to workaround this? I sort of can't change how this JSON string is created, and i would like to use the automagic bean transformer. Thank you _______________________ Everton Agner Ramos 2010/11/18 Everton Agner <ton...@gm...> > Hi! > > I need to convert this JSON string > > > {"Name":"Apple","Expiry":"\/Date(1230429600000-0200)\/","Price":3.99,"Sizes":["Small","Medium","Large"]} > > To this JavaBean > > public class Product > { > private String name; > private Date expiry; > private BigDecimal price; > private String[] sizes; > } > > With this code > > JSONObject json = JSONObject.fromObject(jsonText); > > Product p = (Product) JSONObject.toBean(json, Product.class); > > > And I'm getting this exception: > > Exception in thread "main" net.sf.json.JSONException: > java.lang.NoSuchMethodException: Unknown property 'Sizes' on class 'class > Product' > > > I don't think it's because os case sensitivity (it's an Object created on > C#, that's why the properties are Pascal Case). > > What do i need to do to make this work? I searched for it and got > nothing... > > > Thanks! > > _______________________ > Everton Agner Ramos > |
From: Everton A. <ton...@gm...> - 2010-11-18 15:17:19
|
Hi! I need to convert this JSON string {"Name":"Apple","Expiry":"\/Date(1230429600000-0200)\/","Price":3.99,"Sizes":["Small","Medium","Large"]} To this JavaBean public class Product { private String name; private Date expiry; private BigDecimal price; private String[] sizes; } With this code JSONObject json = JSONObject.fromObject(jsonText); Product p = (Product) JSONObject.toBean(json, Product.class); And I'm getting this exception: Exception in thread "main" net.sf.json.JSONException: java.lang.NoSuchMethodException: Unknown property 'Sizes' on class 'class Product' I don't think it's because os case sensitivity (it's an Object created on C#, that's why the properties are Pascal Case). What do i need to do to make this work? I searched for it and got nothing... Thanks! _______________________ Everton Agner Ramos |
From: Alexander C. <a.s...@gm...> - 2010-10-25 09:04:34
|
Hello. I have a problem to convert from json to Java. I have json: {"data":{"characteristics":[{"name":"qeqwe","description":"qweqwe","characte risticType":"BOOLEAN"}],"id":12}} And Java bean: public class ResourceSpecModel { private Long id; private Set<ResourceSpecCharModel> characteristics; public Long getId() { return id; } public void setId(Long id) { this.id = id; } public Set<ResourceSpecCharModel> getCharacteristics() { return characteristics; } public void setCharacteristics(Set<ResourceSpecCharModel> characteristics) { this.characteristics = characteristics; } } When I try to convert json to java using JSONSerializer.toJava(object, jsonConfig) I get wrong result. Object is JSONObject it contains JSONArray of characteristics. I expect that characteristics will be converted to Set<ResourceSpecCharModel> but have a Set of MorphDynaBean instead of ResourceSpecCharModel: [net.sf.ezmorph.bean.MorphDynaBean@3dcecfaa[{description=qweqwe, name=qeqwe, characteristicType=BOOLEAN}]] RootClass in jsonConfig setted to ResourceSpecModel. ResourceSpecCharModel has all getters and setters. What I'm doing wrong? |
From: Alan H. <al....@gm...> - 2010-08-17 17:59:05
|
Is there a setting that can be set so that when JSON is output all Objects are treated as Arrays? I thought that the JsonConfig object might provide this functionality using the ArrayMode's but it doesn't seem to be the case. Any help on this one? Thanks, Alan. |
From: Jim T. <we...@ya...> - 2010-08-14 03:17:09
|
I have a few Maps which use Integer types as keys. When converting to json string, typically the keys turn into String values (i.e., they are enclosed in double quotes). The same happens when I'm converting a json string to a Map. Even though the keys in the string are not enclosed by double quotes, json-lib creates Map instances that have keys of type String. I know that the JSON spec defines only { string : value } for objects, however this is too restrictive in my use case. I basically can't send those beans to the client side because they come back with incorrect types, resulting is ClassCastExceptions everywhere. Is there a way to make the json-lib respect the Integer key type of my Maps, and leave them as such? Thanks |
From: Tim H. <har...@ya...> - 2010-08-06 15:38:16
|
You might consider using XStream or GSON for that. I prefer the former. IMHO JSON-lib is really good for working with JSON objects, but not as good at being a serializer. Serializers have their quirks sometimes too. If your new to it, I think it is less development time to just write a service to xform JSONObject to your domain objects. But the trade-off might be in performance (extra object creation may be involved) and code readabiitiy (some seriaize mechanisms are pretty easy to read when you work with annotations). HTH Tim ----- Original Message ---- From: Alexander Chuprin <a.s...@gm...> To: jso...@li... Sent: Thu, August 5, 2010 11:22:25 PM Subject: [json-lib-user] Transform from JSON to Java Hello. I'm using json-lib first time. I need to transform json (string or JSONObject) to JavaBean. But i need to transform specific attribute not to primitive class, but to specific bean. In example, i have json of Region object: {id: 1, secondaryRegion: 3, ldapInterface: 212} Id is a simple integer, but secondaryRegion and ldapInterface more complex type. I need to transform secondaryRegion to Region bean with id 3 and ldapInterface to LdapInterfaceModel with id 212. How i can set transformation to attributes with given name? ------------------------------------------------------------------------------ This SF.net email is sponsored by Make an app they can't live without Enter the BlackBerry Developer Challenge http://p.sf.net/sfu/RIM-dev2dev _______________________________________________ json-lib-user mailing list jso...@li... https://lists.sourceforge.net/lists/listinfo/json-lib-user |
From: Alexander C. <a.s...@gm...> - 2010-08-06 06:22:35
|
Hello. I'm using json-lib first time. I need to transform json (string or JSONObject) to JavaBean. But i need to transform specific attribute not to primitive class, but to specific bean. In example, i have json of Region object: {id: 1, secondaryRegion: 3, ldapInterface: 212} Id is a simple integer, but secondaryRegion and ldapInterface more complex type. I need to transform secondaryRegion to Region bean with id 3 and ldapInterface to LdapInterfaceModel with id 212. How i can set transformation to attributes with given name? |
From: Pedro P. <ped...@we...> - 2010-06-01 16:14:16
|
Hey again, Ok, seems I have it about figured out. Turns out that there is an actual issue with the way the parser deals (or doesn't deal) with whitespace between the colon and the value, which lead to not noticing quotes that were not contiguous with the :. That bit I fixed in JSONObject.java (attached diff and test case). I included a test.json file that reproduces this issue. I simply read the file into a string and run JSONSerializer.toJSON() on it. The test file also highlights a second bug, that seems to me to be somewhat deep seated: at several points, json-lib guesses whether strings are literal strings or json-encoded strings; there's no use/mention differentiation. Namely, see what happens to the value for the nestedobject key. After the JSONObject patch, I could safely remove the maybeJSON() logic from AbstractJSON._processValue() (AbstractJSON.java.diff), and all of the test file was correctly parsed. This second patch breaks a number of test cases, but all of them share a common element: no distinction between setting a value as being the "{}" string versus the {} empty set (or similar). I assert that the correct behaviour from json.element(key, "{}") should be set the value for key as the "{}" string, rather than defaulting to shorthand for something akin to json.element(key, JSONSerializer.toJSON("{}")). Regards, Pedro Pinheiro |
From: Pedro P. <ped...@we...> - 2010-05-31 18:30:33
|
Thanks for the suggestion. Unfortunately, I need to import the whole JSON file, and then append it to another JSONObject, so cherry-picking the bits I care about (like what your solution seems to imply) is not a possibility. From what I can gather, the problem is with the tokenizer evaluating values and then not distinguishing between quoted strings and unquoted arrays in the value string. Going to try and figure out whether that's solvable in a moderately simple way. Regards, Pedro Pinheiro On May 31, 2010, at 6:38 PM, Christoffer Dam Bruun wrote: > Hi, > > I have had the exact same problem. > > I solved it by changing the following files: > > <snip> > > And then I only use putByRef and addByRef in my program. > > The key thing in the add/putByRef methods are that when you add/put a > String then you do *not* call the original put/add methods that try to > interpret the String. > > Best regards, > Christoffer Dam Bruun > > On 31-05-2010 18:09, Pedro Pinheiro wrote: >> Hello all, >> >> I'm having an issue with json-lib 2.2.3 and 2.3, where strings that >> contain exactly a json-style array are interpreted as arrays rather >> than strings ("key":"[1,2,3]" are being interpreted as if the source >> read "key": [1,2,3]). A space at the end of the string seems to >> short- >> circuit this behaviour (i.e. "key":"[1,2,3]" is misinterpreted, but >> "key":"[1,2,3] " isn't). This seems to be consistent (and I find the >> same behaviour) with what Pedro Alves posted about a year ago in >> this >> mailling list, where the same happens with strings shaped like >> "function(){}". Is this supposed to be a feature I'm unaware of, or >> is >> this simply a bizarre bug? Thanks for your attention. >> >> Regards, >> >> Pedro Pinheiro >> >> ------------------------------------------------------------------------------ >> >> _______________________________________________ >> json-lib-user mailing list >> jso...@li... >> https://lists.sourceforge.net/lists/listinfo/json-lib-user >> > > > ------------------------------------------------------------------------------ > > _______________________________________________ > json-lib-user mailing list > jso...@li... > https://lists.sourceforge.net/lists/listinfo/json-lib-user |
From: Christoffer D. B. <cd...@fl...> - 2010-05-31 17:58:22
|
Hi, I have had the exact same problem. I solved it by changing the following files: src/main/jdk15/net/sf/json/JSONObject.java: public Object putByRef( Object key, Object value ) { if( key == null ){ throw new IllegalArgumentException( "key is null." ); } verifyIsNull(); Object previous = properties.get( key ); if (value instanceof String || value instanceof JSONObject || value instanceof JSONArray || value instanceof Boolean || value instanceof Integer || value instanceof Double || value instanceof Long ) { properties.put(key, value); return previous; } else { return put(key,value); } } And src/main/jdk15/net/sf/json/JSONArray.java: public boolean addByRef( Object value ) { if (value instanceof String || value instanceof JSONObject || value instanceof JSONArray || value instanceof Boolean || value instanceof Integer || value instanceof Double || value instanceof Long ) { this.elements.add(value); return true; } return add( value, new JsonConfig() ); } And then I only use putByRef and addByRef in my program. The key thing in the add/putByRef methods are that when you add/put a String then you do *not* call the original put/add methods that try to interpret the String. Best regards, Christoffer Dam Bruun On 31-05-2010 18:09, Pedro Pinheiro wrote: > Hello all, > > I'm having an issue with json-lib 2.2.3 and 2.3, where strings that > contain exactly a json-style array are interpreted as arrays rather > than strings ("key":"[1,2,3]" are being interpreted as if the source > read "key": [1,2,3]). A space at the end of the string seems to short- > circuit this behaviour (i.e. "key":"[1,2,3]" is misinterpreted, but > "key":"[1,2,3] " isn't). This seems to be consistent (and I find the > same behaviour) with what Pedro Alves posted about a year ago in this > mailling list, where the same happens with strings shaped like > "function(){}". Is this supposed to be a feature I'm unaware of, or is > this simply a bizarre bug? Thanks for your attention. > > Regards, > > Pedro Pinheiro > > ------------------------------------------------------------------------------ > > _______________________________________________ > json-lib-user mailing list > jso...@li... > https://lists.sourceforge.net/lists/listinfo/json-lib-user > |
From: Pedro P. <ped...@we...> - 2010-05-31 17:17:56
|
Hello all, I'm having an issue with json-lib 2.2.3 and 2.3, where strings that contain exactly a json-style array are interpreted as arrays rather than strings ("key":"[1,2,3]" are being interpreted as if the source read "key": [1,2,3]). A space at the end of the string seems to short- circuit this behaviour (i.e. "key":"[1,2,3]" is misinterpreted, but "key":"[1,2,3] " isn't). This seems to be consistent (and I find the same behaviour) with what Pedro Alves posted about a year ago in this mailling list, where the same happens with strings shaped like "function(){}". Is this supposed to be a feature I'm unaware of, or is this simply a bizarre bug? Thanks for your attention. Regards, Pedro Pinheiro |
From: Jonathan G. <jso...@ki...> - 2010-05-13 19:22:34
|
I think what you're looking for is "Changing the default value of a null reference" here: http://json-lib.sourceforge.net/advanced.html Jonathan On Thu, May 13, 2010 at 10:45 AM, Morgan Packard <mo...@mo...> wrote: > Hello, > I posted this question a while back and got no reponse. Figured I'd try it > again. Thanks! > > My java bean has a property, someStringProp, whose value is null. > > The JSON generated from this object looks like this: > > {"someStringProp":""} > > How can I have my generated JSON look like this? > > {"someStringProp":null} > > thanks, > > -Morgan > > ------------------------------------------------------------------------------ > > > _______________________________________________ > json-lib-user mailing list > jso...@li... > https://lists.sourceforge.net/lists/listinfo/json-lib-user > > |
From: Morgan P. <mo...@mo...> - 2010-05-13 17:45:24
|
Hello, I posted this question a while back and got no reponse. Figured I'd try it again. Thanks! My java bean has a property, someStringProp, whose value is null. The JSON generated from this object looks like this: {"someStringProp":""} How can I have my generated JSON look like this? {"someStringProp":null} thanks, -Morgan |
From: <al....@gm...> - 2010-04-29 10:29:13
|
Is there a benefit to sorting the JSON elements before there are added to the XML output file? When using the library I noticed that the sorting causes the order of the elements to change, this can break some XML validation. I am just wondering is there a negative effect that anyone knows of from removing this sorting? XMLSerializer.java Line 940: Object[] names = jsonObject.names() 941: .toArray(); 942: // Arrays.sort( names ); Thanks. |
From: jimmy Z. <jz...@xi...> - 2010-04-16 23:42:02
|
VTD-XML 2.8 has been released. Please visit https://sourceforge.net/projects/vtd-xml/files/ to download the latest version. a.. Expansion of Core VTD-XML API a.. VTDGen adds support for capturing white spaces b.. VTDNav adds support for suport for getContentFragment(), recoverNode() and cloneNav() c.. XMLModifier adds support for update and reparse feature d.. AutoPilot adds support for retrieving all attributes e.. BookMark is also enhanced. b.. Expansion of Extended VTD-XML API a.. Add content extraction ability to extended VTD-XML b.. VTDNavHuge now can call getElementFragment() and getElementFragmentNs() c.. VTDGenHuge adds support for capturing white spaces c.. XPath a.. Adds comment and processing instruction support for nodes, and performance enhancement b.. Adds namespace axis support . c.. Adds round-half-to-even() d.. A number of bug fixes and code enhancement |
From: Vinod E. <vel...@ap...> - 2010-04-06 01:23:46
|
Hello folks, This is my first time using json. Let me explain to you briefly as what i am doing and then what i want. Basically we have client server model. server is fully in java and right now the client is also in java. But we want to develop the client in C#. We use http protocol to communicate and use java serialization. Earlier we used to use XML but due to lot of processing at the client side we are using serialization mechanism. So our who object that we transform is just a HashMap. Since we want to build C# client also i want to use json to transform the map and then retrieve back in C#. However the HashMap is not just name value pairs. It also has POJO objects in them. So my question is how can i retrieve them back in the same object. Right now if i try to do it JSONObject.toBean(jsonObj, HashMap.class) is giving me DynaBean and not the POJO object. Please let me know how i can resolve this. thanks in advance, |
From: Morgan P. <mo...@mo...> - 2010-03-29 16:26:24
|
Hello, My java bean has a property, SomeStringProp, whose value is null. The JSON generated from this object looks like this: {"SomeStringProp":""} How can I have my generated JSON look like this? {"SomeStringProp":null} Thanks so much! -Morgan |
From: chao w. <cwa...@ho...> - 2010-03-17 21:11:37
|
_________________________________________________________________ Hotmail: Trusted email with powerful SPAM protection. http://clk.atdmt.com/GBL/go/210850553/direct/01/ |
From: Pedro A. <pe...@ne...> - 2010-02-22 20:25:27
|
I cheated, and added a space after the final } :p On Mon, Feb 22, 2010 at 09:13:13PM +0100, Christoffer Dam Bruun wrote: > Hi, > > I have run into the same problem as you when trying to store a piece of > text that looks like a JSON Array as a string in a JSONObject. > > Did you solve the problem ? > > I looked into the matter and I believe the problem is this code in > AbstractJSON.java:222 (v2.3 og json-lib) > > protected Object _processValue( Object value, JsonConfig jsonConfig ) { > if( JSONNull.getInstance().equals( value ) ) { > return JSONNull.getInstance(); > } else if( Class.class.isAssignableFrom( value.getClass() ) || > value instanceof Class ) { > return ((Class) value).getName(); > } else if( JSONUtils.isFunction( value ) ) { > if( value instanceof String ) { > value = JSONFunction.parse( (String) value ); > } > return value; > } else if( value instanceof JSONString ) { > return JSONSerializer.toJSON( (JSONString) value, jsonConfig ); > } else if( value instanceof JSON ) { > return JSONSerializer.toJSON( value, jsonConfig ); > } else if( JSONUtils.isArray( value ) ) { > return JSONArray.fromObject( value, jsonConfig ); > } else if( JSONUtils.isString( value ) ) { > String str = String.valueOf( value ); > ... > ... > } > > >From that it is clear that it is impossible to store a > java.lang.String that looks like a function or array if you are using > the standard setup. > > It is not clear to me how easy it is to reconfigure net.sf.json to > behave differently. > > Best regards > Christoffer Dam Bruun > > ------------------------------------------------------------------------------ > Download Intel® Parallel Studio Eval > Try the new software tools for yourself. Speed compiling, find bugs > proactively, and fine-tune applications for parallel performance. > See why Intel Parallel Studio got high marks during beta. > http://p.sf.net/sfu/intel-sw-dev > _______________________________________________ > json-lib-user mailing list > jso...@li... > https://lists.sourceforge.net/lists/listinfo/json-lib-user -- Pedro Alves pmgalves-at-gmail.com |
From: Christoffer D. B. <cd...@fl...> - 2010-02-22 20:13:53
|
Hi, I have run into the same problem as you when trying to store a piece of text that looks like a JSON Array as a string in a JSONObject. Did you solve the problem ? I looked into the matter and I believe the problem is this code in AbstractJSON.java:222 (v2.3 og json-lib) protected Object _processValue( Object value, JsonConfig jsonConfig ) { if( JSONNull.getInstance().equals( value ) ) { return JSONNull.getInstance(); } else if( Class.class.isAssignableFrom( value.getClass() ) || value instanceof Class ) { return ((Class) value).getName(); } else if( JSONUtils.isFunction( value ) ) { if( value instanceof String ) { value = JSONFunction.parse( (String) value ); } return value; } else if( value instanceof JSONString ) { return JSONSerializer.toJSON( (JSONString) value, jsonConfig ); } else if( value instanceof JSON ) { return JSONSerializer.toJSON( value, jsonConfig ); } else if( JSONUtils.isArray( value ) ) { return JSONArray.fromObject( value, jsonConfig ); } else if( JSONUtils.isString( value ) ) { String str = String.valueOf( value ); ... ... } >From that it is clear that it is impossible to store a java.lang.String that looks like a function or array if you are using the standard setup. It is not clear to me how easy it is to reconfigure net.sf.json to behave differently. Best regards Christoffer Dam Bruun |
From: Tim H. <har...@ya...> - 2009-12-28 19:10:41
|
Hi all, the following code: String str = "{\"Attr\": {\"searchString\": \"[646.011 TO 646.013]\"}}"; logger.debug(str); logger.debug( JSONObject.fromObject(str).toString(2)); Produces the following result: {"Attr": {"searchString": ["646.011 TO 646.013"]}} As you can see JSON-Lib is interpreting the brackets inside the quotes as if they denote a JSON array. JSON-lib has been so rock-solid to this point that I rely on it heavily and must get this fixed for my code to continue to work. Any help greatly appreciated. Thanks, Tim |
From: John D. D. <joh...@ex...> - 2009-11-12 23:11:10
|
Greetings, I am attempting to use json-lib 2.3 to serialize entities created by hibernate 3.2.5ga for use in AJAX web applications. However, I'm encountering a strange problem where json-lib appears to be attempting to serialize a JDBC ResultSet. However, because I'm using hibernate for ORM, I do not directly work with ResultSets anywhere in my entire application. My current working theory is that because hibernate is creating an object with multiple properties which are lazily initialized (which I specified in my mapping) that json-lib is grabbing a reference to the current hibernate session from the CGLIB proxy, which hibernate uses to *transparently* lazily load properties on demand, and is somehow getting a reference to the JDBC result set from the hibernate session. The complete stack trace is as follows, 16:13:08,943 WARN JSONObject:950 - Property 'password' of class us.vt.state.ahs.gac.entity.User has no read method. SKIPPED 16:13:08,971 WARN JSONObject:950 - Property 'transactionTimeout' of class org.hibernate.jdbc.BatchingBatcher has no read method. SKIPPED 16:13:09,017 WARN JSONObject:950 - Property 'autoReconnect' of class com.mysql.jdbc.JDBC4Connection has no read method. SKIPPED 16:13:09,017 WARN JSONObject:950 - Property 'autoReconnectForConnectionPools' of class com.mysql.jdbc.JDBC4Connection has no read method. SKIPPED 16:13:09,018 WARN JSONObject:950 - Property 'capitalizeDBMDTypes' of class com.mysql.jdbc.JDBC4Connection has no read method. SKIPPED 16:13:09,019 WARN JSONObject:950 - Property 'characterEncoding' of class com.mysql.jdbc.JDBC4Connection has no read method. SKIPPED 16:13:09,020 WARN JSONObject:950 - Property 'detectServerPreparedStmts' of class com.mysql.jdbc.JDBC4Connection has no read method. SKIPPED 16:13:09,021 WARN JSONObject:950 - Property 'failedOver' of class com.mysql.jdbc.JDBC4Connection has no read method. SKIPPED 16:13:09,055 WARN JSONObject:950 - Property 'NCharacterStream' of class com.mysql.jdbc.JDBC4ResultSet has no read method. SKIPPED 16:13:09,056 WARN JSONObject:950 - Property 'NClob' of class com.mysql.jdbc.JDBC4ResultSet has no read method. SKIPPED 16:13:09,057 WARN JSONObject:950 - Property 'NString' of class com.mysql.jdbc.JDBC4ResultSet has no read method. SKIPPED 16:13:09,058 WARN JSONObject:950 - Property 'SQLXML' of class com.mysql.jdbc.JDBC4ResultSet has no read method. SKIPPED 16:13:09,065 WARN JSONObject:950 - Property 'URL' of class com.mysql.jdbc.JDBC4ResultSet has no read method. SKIPPED 16:13:09,065 WARN JSONObject:950 - Property 'array' of class com.mysql.jdbc.JDBC4ResultSet has no read method. SKIPPED 16:13:09,066 WARN JSONObject:950 - Property 'asciiStream' of class com.mysql.jdbc.JDBC4ResultSet has no read method. SKIPPED 16:13:09,066 WARN JSONObject:950 - Property 'bigDecimal' of class com.mysql.jdbc.JDBC4ResultSet has no read method. SKIPPED 16:13:09,067 WARN JSONObject:950 - Property 'binaryStream' of class com.mysql.jdbc.JDBC4ResultSet has no read method. SKIPPED 16:13:09,067 WARN JSONObject:950 - Property 'blob' of class com.mysql.jdbc.JDBC4ResultSet has no read method. SKIPPED 16:13:09,068 WARN JSONObject:950 - Property 'boolean' of class com.mysql.jdbc.JDBC4ResultSet has no read method. SKIPPED 16:13:09,068 WARN JSONObject:950 - Property 'byte' of class com.mysql.jdbc.JDBC4ResultSet has no read method. SKIPPED 16:13:09,095 WARN JSONObject:950 - Property 'bytes' of class com.mysql.jdbc.JDBC4ResultSet has no read method. SKIPPED 16:13:09,096 WARN JSONObject:950 - Property 'characterStream' of class com.mysql.jdbc.JDBC4ResultSet has no read method. SKIPPED 16:13:09,096 WARN JSONObject:950 - Property 'clob' of class com.mysql.jdbc.JDBC4ResultSet has no read method. SKIPPED 16:13:09,103 WARN JSONObject:950 - Property 'password' of class us.vt.state.ahs.gac.entity.User has no read method. SKIPPED 16:13:09,104 WARN JSONObject:950 - Property 'transactionTimeout' of class org.hibernate.jdbc.BatchingBatcher has no read method. SKIPPED 16:13:09,104 WARN JSONObject:950 - Property 'autoReconnect' of class com.mysql.jdbc.JDBC4Connection has no read method. SKIPPED 16:13:09,105 WARN JSONObject:950 - Property 'autoReconnectForConnectionPools' of class com.mysql.jdbc.JDBC4Connection has no read method. SKIPPED 16:13:09,105 WARN JSONObject:950 - Property 'capitalizeDBMDTypes' of class com.mysql.jdbc.JDBC4Connection has no read method. SKIPPED 16:13:09,106 WARN JSONObject:950 - Property 'characterEncoding' of class com.mysql.jdbc.JDBC4Connection has no read method. SKIPPED 16:13:09,106 WARN JSONObject:950 - Property 'detectServerPreparedStmts' of class com.mysql.jdbc.JDBC4Connection has no read method. SKIPPED 16:13:09,107 WARN JSONObject:950 - Property 'failedOver' of class com.mysql.jdbc.JDBC4Connection has no read method. SKIPPED 16:13:09,109 WARN JSONObject:950 - Property 'NCharacterStream' of class com.mysql.jdbc.JDBC4ResultSet has no read method. SKIPPED 16:13:09,109 WARN JSONObject:950 - Property 'NClob' of class com.mysql.jdbc.JDBC4ResultSet has no read method. SKIPPED 16:13:09,110 WARN JSONObject:950 - Property 'NString' of class com.mysql.jdbc.JDBC4ResultSet has no read method. SKIPPED 16:13:09,110 WARN JSONObject:950 - Property 'SQLXML' of class com.mysql.jdbc.JDBC4ResultSet has no read method. SKIPPED 16:13:09,110 WARN JSONObject:950 - Property 'URL' of class com.mysql.jdbc.JDBC4ResultSet has no read method. SKIPPED 16:13:09,111 WARN JSONObject:950 - Property 'array' of class com.mysql.jdbc.JDBC4ResultSet has no read method. SKIPPED 16:13:09,111 WARN JSONObject:950 - Property 'asciiStream' of class com.mysql.jdbc.JDBC4ResultSet has no read method. SKIPPED 16:13:09,112 WARN JSONObject:950 - Property 'bigDecimal' of class com.mysql.jdbc.JDBC4ResultSet has no read method. SKIPPED 16:13:09,112 WARN JSONObject:950 - Property 'binaryStream' of class com.mysql.jdbc.JDBC4ResultSet has no read method. SKIPPED 16:13:09,112 WARN JSONObject:950 - Property 'blob' of class com.mysql.jdbc.JDBC4ResultSet has no read method. SKIPPED 16:13:09,113 WARN JSONObject:950 - Property 'boolean' of class com.mysql.jdbc.JDBC4ResultSet has no read method. SKIPPED 16:13:09,113 WARN JSONObject:950 - Property 'byte' of class com.mysql.jdbc.JDBC4ResultSet has no read method. SKIPPED 16:13:09,114 WARN JSONObject:950 - Property 'bytes' of class com.mysql.jdbc.JDBC4ResultSet has no read method. SKIPPED 16:13:09,114 WARN JSONObject:950 - Property 'characterStream' of class com.mysql.jdbc.JDBC4ResultSet has no read method. SKIPPED 16:13:09,114 WARN JSONObject:950 - Property 'clob' of class com.mysql.jdbc.JDBC4ResultSet has no read method. SKIPPED 2009-11-12 16:13:09.117::WARN: /gac/account.xhtml net.sf.json.JSONException: java.lang.reflect.InvocationTargetException at net.sf.json.JSONObject._fromBean(JSONObject.java:959) at net.sf.json.JSONObject.fromObject(JSONObject.java:194) at net.sf.json.JSONObject._processValue(JSONObject.java:2793) at net.sf.json.JSONObject._setInternal(JSONObject.java:2817) at net.sf.json.JSONObject.setValue(JSONObject.java:1527) at net.sf.json.JSONObject._fromBean(JSONObject.java:946) at net.sf.json.JSONObject.fromObject(JSONObject.java:194) at net.sf.json.JSONObject._processValue(JSONObject.java:2793) at net.sf.json.JSONObject._setInternal(JSONObject.java:2817) at net.sf.json.JSONObject.setValue(JSONObject.java:1527) at net.sf.json.JSONObject._fromBean(JSONObject.java:946) at net.sf.json.JSONObject.fromObject(JSONObject.java:194) at net.sf.json.JSONObject._processValue(JSONObject.java:2793) at net.sf.json.JSONObject._setInternal(JSONObject.java:2817) at net.sf.json.JSONObject.setValue(JSONObject.java:1527) at net.sf.json.JSONObject._fromBean(JSONObject.java:946) at net.sf.json.JSONObject.fromObject(JSONObject.java:194) at net.sf.json.JSONObject._processValue(JSONObject.java:2793) at net.sf.json.JSONObject._setInternal(JSONObject.java:2817) at net.sf.json.JSONObject.setValue(JSONObject.java:1527) at net.sf.json.JSONObject._fromBean(JSONObject.java:946) at net.sf.json.JSONObject.fromObject(JSONObject.java:194) at net.sf.json.JSONObject._processValue(JSONObject.java:2793) at net.sf.json.JSONObject._setInternal(JSONObject.java:2817) at net.sf.json.JSONObject.setValue(JSONObject.java:1527) at net.sf.json.JSONObject._fromBean(JSONObject.java:946) at net.sf.json.JSONObject.fromObject(JSONObject.java:194) at net.sf.json.JSONObject._processValue(JSONObject.java:2793) at net.sf.json.JSONObject._setInternal(JSONObject.java:2817) at net.sf.json.JSONObject.setValue(JSONObject.java:1527) at net.sf.json.JSONObject._fromBean(JSONObject.java:946) at net.sf.json.JSONObject.fromObject(JSONObject.java:194) at net.sf.json.JSONObject._processValue(JSONObject.java:2793) at net.sf.json.JSONObject._setInternal(JSONObject.java:2817) at net.sf.json.JSONObject.setValue(JSONObject.java:1527) at net.sf.json.JSONObject._fromBean(JSONObject.java:946) at net.sf.json.JSONObject.fromObject(JSONObject.java:194) at net.sf.json.JSONObject._processValue(JSONObject.java:2793) at net.sf.json.JSONObject._setInternal(JSONObject.java:2817) at net.sf.json.JSONObject.setValue(JSONObject.java:1527) at net.sf.json.JSONObject._fromBean(JSONObject.java:946) at net.sf.json.JSONObject.fromObject(JSONObject.java:194) at net.sf.json.JSONObject._processValue(JSONObject.java:2793) at net.sf.json.JSONObject._setInternal(JSONObject.java:2817) at net.sf.json.JSONObject.setValue(JSONObject.java:1527) at net.sf.json.JSONObject._fromBean(JSONObject.java:946) at net.sf.json.JSONObject.fromObject(JSONObject.java:194) at net.sf.json.JSONObject._processValue(JSONObject.java:2793) at net.sf.json.JSONObject._setInternal(JSONObject.java:2817) at net.sf.json.JSONObject.setValue(JSONObject.java:1527) at net.sf.json.JSONObject._fromMap(JSONObject.java:1304) at net.sf.json.JSONObject.fromObject(JSONObject.java:185) at net.sf.json.JSONObject._processValue(JSONObject.java:2793) at net.sf.json.JSONObject._setInternal(JSONObject.java:2817) at net.sf.json.JSONObject.setValue(JSONObject.java:1527) at net.sf.json.JSONObject._fromMap(JSONObject.java:1304) at net.sf.json.JSONObject.fromObject(JSONObject.java:185) at net.sf.json.JSONArray.fromObject(JSONArray.java:194) at net.sf.json.JSONSerializer.toJSON(JSONSerializer.java:113) at gov.vermont.dcf.json.encoders.jsonlib.JsonLibEncoder.write(JsonLibEncoder.java:78) at gov.vermont.dcf.json.AbstractJsonView.renderMergedOutputModel(AbstractJsonView.java:91) at gov.vermont.dcf.json.views.extjs.ExtJsonView.renderMergedOutputModel(ExtJsonView.java:106) at org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:257) at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1183) at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:902) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:807) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:571) at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:501) at javax.servlet.http.HttpServlet.service(HttpServlet.java:707) at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:502) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) at org.displaytag.filter.ResponseOverrideFilter.doFilter(ResponseOverrideFilter.java:125) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1148) at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:378) at org.springframework.security.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:109) at org.springframework.security.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83) at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390) at org.springframework.security.ui.SessionFixationProtectionFilter.doFilterHttp(SessionFixationProtectionFilter.java:52) at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53) at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390) at org.springframework.security.ui.ExceptionTranslationFilter.doFilterHttp(ExceptionTranslationFilter.java:101) at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53) at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390) at org.springframework.security.providers.anonymous.AnonymousProcessingFilter.doFilterHttp(AnonymousProcessingFilter.java:105) at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53) at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390) at org.springframework.security.ui.rememberme.RememberMeProcessingFilter.doFilterHttp(RememberMeProcessingFilter.java:109) at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53) at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390) at org.springframework.security.wrapper.SecurityContextHolderAwareRequestFilter.doFilterHttp(SecurityContextHolderAwareRequestFilter.java:91) at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53) at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390) at org.springframework.security.ui.basicauth.BasicProcessingFilter.doFilterHttp(BasicProcessingFilter.java:174) at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53) at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390) at org.springframework.security.ui.AbstractProcessingFilter.doFilterHttp(AbstractProcessingFilter.java:277) at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53) at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390) at org.springframework.security.ui.logout.LogoutFilter.doFilterHttp(LogoutFilter.java:89) at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53) at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390) at org.springframework.security.context.HttpSessionContextIntegrationFilter.doFilterHttp(HttpSessionContextIntegrationFilter.java:235) at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53) at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390) at org.springframework.security.securechannel.ChannelProcessingFilter.doFilterHttp(ChannelProcessingFilter.java:116) at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53) at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390) at org.springframework.security.util.FilterChainProxy.doFilter(FilterChainProxy.java:175) at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:236) at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1148) at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:96) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1148) at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:387) at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181) at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765) at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:417) at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230) at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114) at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) at org.mortbay.jetty.Server.handle(Server.java:324) at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:535) at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:865) at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:539) at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212) at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404) at org.mortbay.jetty.bio.SocketConnector$Connection.run(SocketConnector.java:228) at org.mortbay.jetty.security.SslSocketConnector$SslConnection.run(SslSocketConnector.java:636) at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:520) Caused by: java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.apache.commons.beanutils.PropertyUtilsBean.invokeMethod(PropertyUtilsBean.java:1773) at org.apache.commons.beanutils.PropertyUtilsBean.getSimpleProperty(PropertyUtilsBean.java:1132) at org.apache.commons.beanutils.PropertyUtilsBean.getNestedProperty(PropertyUtilsBean.java:686) at org.apache.commons.beanutils.PropertyUtilsBean.getProperty(PropertyUtilsBean.java:715) at org.apache.commons.beanutils.PropertyUtils.getProperty(PropertyUtils.java:290) at net.sf.json.JSONObject._fromBean(JSONObject.java:931) ... 131 more Caused by: java.sql.SQLException: Positioned Update not supported. at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1055) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:926) at com.mysql.jdbc.ResultSetImpl.getCursorName(ResultSetImpl.java:2050) ... 141 more Any help would be greatly appreciated! -John |