Как создать объект JSON в классе действий JAVA - PullRequest
0 голосов
/ 03 июня 2009

Я хочу создать объект 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);

Это работает, но когда я использую getJSON в javascript, чтобы получить myString, это не работает.

Ответы [ 3 ]

1 голос
/ 03 июня 2009

1001 * попробовать *

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"}
0 голосов
/ 03 июня 2009

Посмотрите на GSON, библиотеку Java для преобразования объектов в JSON от Google. [Библиотека GSON] [1]

С сайта Google Code:

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

  • Предоставление простых методов toJson () и fromJson () для преобразования объектов Java в JSON и наоборот
  • Разрешить преобразование уже существующих неизменяемых объектов в JSON и из него
0 голосов
/ 03 июня 2009

Вы должны попробовать:

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