You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cxf.apache.org by "Ilya Kramer (JIRA)" <ji...@apache.org> on 2011/02/16 12:08:57 UTC
[jira] Updated: (CXF-3341) Bad JSON marshalling of List
object
[ https://issues.apache.org/jira/browse/CXF-3341?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Ilya Kramer updated CXF-3341:
-----------------------------
Description:
Wrong result returned by marshalling an object with List<String>. The result some why depends on the actual amount of elements on the list.
for example , this code
{code:title=LDTVSites.java|borderStyle=solid}
package ldtv.api.models;
import java.util.List;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
@XmlRootElement(name = "user")
public class LDTVSites {
private List<String> sites;
public LDTVSites(List<String> sites) {
setSites(sites);
}
public LDTVSites() {
}
public void setSites(List<String> listSites) {
this.sites = listSites;
}
@XmlElement(name="sites")
public List<String> getSites(){
return sites;
}
}
{code}
if getSites returns a list with single result, the result of the function will be
{code}
{"user":{"sites":"string"}}
{code}
whereas if the result is two strings in the list , the output will be
{code}
{"user":{"sites":["string","string2"]}}
{code}
this makes some sense in XML , it shouldn't be so in JSON since the values of the two expressions is different
was:
Wrong result returned by marshalling an object with List<String>. The result some why depends on the actual amount of elements on the list.
for example , this code
{code:xml}
package ldtv.api.models;
import java.util.List;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
@XmlRootElement(name = "user")
public class LDTVSites {
private List<String> sites;
public LDTVSites(List<String> sites) {
setSites(sites);
}
public LDTVSites() {
}
public void setSites(List<String> listSites) {
this.sites = listSites;
}
@XmlElement(name="sites")
public List<String> getSites(){
return sites;
}
}
{/code}
if getSites returns a list with single result, the result of the function will be
{"user":{"sites":"string"}}
whereas if the result is two strings in the list , the output will be
{"user":{"sites":["string","string2"]}}
this makes some sense in XML , it shouldn't be so in JSON since the values of the two expressions is different
> Bad JSON marshalling of List<String> object
> -------------------------------------------
>
> Key: CXF-3341
> URL: https://issues.apache.org/jira/browse/CXF-3341
> Project: CXF
> Issue Type: Bug
> Components: JAX-RS
> Affects Versions: 2.3.2
> Environment: Ubuntu 10.04 64Bit Server
> Reporter: Ilya Kramer
>
> Wrong result returned by marshalling an object with List<String>. The result some why depends on the actual amount of elements on the list.
> for example , this code
> {code:title=LDTVSites.java|borderStyle=solid}
> package ldtv.api.models;
> import java.util.List;
> import javax.xml.bind.annotation.XmlElement;
> import javax.xml.bind.annotation.XmlRootElement;
> @XmlRootElement(name = "user")
> public class LDTVSites {
>
> private List<String> sites;
> public LDTVSites(List<String> sites) {
> setSites(sites);
> }
> public LDTVSites() {
> }
> public void setSites(List<String> listSites) {
> this.sites = listSites;
> }
>
> @XmlElement(name="sites")
> public List<String> getSites(){
> return sites;
> }
> }
> {code}
> if getSites returns a list with single result, the result of the function will be
> {code}
> {"user":{"sites":"string"}}
> {code}
> whereas if the result is two strings in the list , the output will be
> {code}
> {"user":{"sites":["string","string2"]}}
> {code}
> this makes some sense in XML , it shouldn't be so in JSON since the values of the two expressions is different
--
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira