如何在JAVA的动作类中创建JSON对象

时间:2009-06-03 11:48:10

标签: java json xstream

我想创建一个JSON对象。我试过以下

myString=new JSONObject().put("JSON", sampleClass).toString();

但mystring给了我{“SampleClass @ 170f98”}。

我也试过以下

 XStream xsStream=new XStream(new JsonHierarchicalStreamDriver());
 SampleClass sampleClass=new SampleClass(userset.getId(),userset.getUsername());
 myString=xsStream.toXML(sampleClass);

它可以工作,但是当我在javascript中使用getJSON来获取myString时,它不起作用。

3 个答案:

答案 0 :(得分:1)

String myString = new JSONObject().put("JSON", new JSONObject(sampleClass)).toString();

在我的实例中它看起来像这样:

import org.json.JSONObject;
import org.junit.Test;

public class JsonTest
{
    public static class SampleClass
    {
        private String id;

        private String userName;

        public SampleClass ( String id, String name )
        {
            this.id = id;
            this.userName = name;
        }

        public String getUserName ()
        {
            return userName;
        }

        public void setUserName ( String userName )
        {
            this.userName = userName;
        }

        public String getId ()
        {
            return id;
        }

        public void setId ( String id )
        {
            this.id = id;
        }
    }

    @Test
    public void testSampleClass () throws Exception
    {
        SampleClass sampleClass = new SampleClass ( "myId", "MyName" );
        System.out.println ( new JSONObject ( sampleClass ).toString () );
    }
}

结果如下:

{"userName":"MyName","id":"myId"}

答案 1 :(得分:0)

你应该尝试:

XStream xsStream=new XStream(new JettisonMappedXmlDriver());

答案 2 :(得分:0)

查看GSON,这是一个用于Google将对象转换为JSON的Java库。 [GSON图书馆] [1]

来自Google Code网站:

  

http://code.google.com/p/google-gson/

  • 提供简单的toJson()和fromJson()方法将Java对象转换为JSON,反之亦然
  • 允许将预先存在的不可修改对象转换为JSON