Existe uma maneira em Java / J2ME de converter uma string, como:
{name:"MyNode", width:200, height:100}
a uma representação interna do objeto do mesmo, em uma linha de código?
Porque o método atual é muito tedioso:
Object n = create("new");
setString(p, "name", "MyNode");
setInteger(p, "width", 200);
setInteger(p, "height", 100);
Talvez uma biblioteca JSON?
java
json
java-me
serialization
O Flash
fonte
fonte
{"name":"MyNode", "width":200, "height":100}
Respostas:
Usei alguns deles e o meu favorito é,
http://code.google.com/p/json-simple/
A biblioteca é muito pequena, por isso é perfeita para J2ME.
Você pode analisar JSON no objeto Java em uma linha como esta,
fonte
A opção mais simples é Jackson :
Existem outras bibliotecas igualmente simples de usar (Gson já foi mencionado); mas algumas opções são mais trabalhosas, como a biblioteca org.json original, que requer a criação de um "JSONObject" intermediário, mesmo se você não precisar deles.
fonte
Object obj = new ObjectMapper().readValue("[1, 2, 3]", Object.class);
GSON é uma boa opção para converter objeto java em objeto json e vice-versa.
É uma ferramenta fornecida pelo google.
para converter json para uso de objeto java:
fromJson(jsonObject,javaclassname.class)
para converter objeto java para uso de objeto json:
toJson(javaObject)
e o resto será feito automaticamente
Para mais informações e para download
fonte
Você pode fazer isso facilmente com o Google GSON.
Digamos que você tenha uma classe chamada User com os campos user, width e height e deseja converter a seguinte string json no objeto User.
{"name":"MyNode", "width":200, "height":100}
Você pode fazer isso facilmente, sem ter que lançar (mantendo o comentário de nimcap em mente;)), com o seguinte código:
Onde jsonString é a String JSON acima.
Para obter mais informações, consulte https://code.google.com/p/google-gson/
fonte
Você tem muitos analisadores JSON para Java :
JSONObject.java
Um JSONObject é uma coleção não ordenada de pares nome / valor. Sua forma externa é uma string envolta em chaves com dois pontos entre os nomes e valores e vírgulas entre os valores e nomes. A forma interna é um objeto que possui os métodos get () e opt () para acessar os valores por nome e métodos put () para adicionar ou substituir valores por nome. Os valores podem ser qualquer um destes tipos: Boolean, JSONArray, JSONObject, Number e String ou o objeto JSONObject.NULL.
JSONArray.java
Um JSONArray é uma sequência ordenada de valores. Sua forma externa é uma string envolvida em colchetes com vírgulas entre os valores. A forma interna é um objeto que possui os métodos get () e opt () para acessar os valores por índice e os métodos put () para adicionar ou substituir valores. Os valores podem ser qualquer um destes tipos: Boolean, JSONArray, JSONObject, Number e String ou o objeto JSONObject.NULL.
JSONStringer.java
Um JSONStringer é uma ferramenta para produzir texto JSON rapidamente.
JSONWriter.java
Um JSONWriter é uma ferramenta para escrever texto JSON rapidamente em fluxos.
JSONTokener.java
Um JSONTokener pega uma string de origem e extrai caracteres e tokens dela. Ele é usado pelos construtores JSONObject e JSONArray para analisar strings de origem JSON.
JSONException.java
Uma JSONException é lançada quando uma sintaxe ou erro de procedimento é detectado.
JSONString.java
O JSONString é uma interface que permite que as classes implementem sua serialização JSON.
fonte
java
classes simples .O site oficial JSON é onde você deve olhar. Ele fornece várias bibliotecas que podem ser usadas com Java, eu pessoalmente usei esta, JSON-lib, que é uma implementação do trabalho no site, por isso tem exatamente a mesma classe - métodos, etc. nesta página .
Se você clicar nos links html, poderá encontrar o que quiser.
Em resumo:
para criar um objeto json e uma matriz json, o código é:
o1, o2 podem ser tipos primitivos (long, int, boolean), Strings ou Arrays.
O processo reverso é bastante simples, quero dizer, converter uma string em objeto / array json.
Para ser analisado corretamente, você só precisa saber se está analisando um array ou um objeto.
fonte
Use a biblioteca Google GSON para isso
http://iandjava.blogspot.in/2014/01/java-object-to-json-and-json-to-java.html
fonte
Como muitos já disseram, uma maneira bem simples de fazer isso usando JSON.simple como abaixo
Em seguida, use jsonObj para lidar com o objeto JSON. por exemplo, jsonObj.get ("nome");
Conforme o link abaixo, JSON.simple está mostrando eficiência constante para arquivos JSON pequenos e grandes
http://blog.takipi.com/the-ultimate-json-library-json-simple-vs-gson-vs-jackson-vs-json/
fonte
JSON IO é de longe a maneira mais fácil de converter uma string JSON ou fluxo de entrada JSON em um objeto Java
String para objeto Java
Object obj = JsonReader.jsonToJava("[\"Hello, World\"]");
https://code.google.com/p/json-io/
fonte
Esta é uma pergunta antiga e json-simple ( https://code.google.com/p/json-simple/ ) poderia ser uma boa solução naquele momento, mas considere que o projeto parece não estar ativo por um tempo!
Sugiro o Gson que agora está hospedado em: https://github.com/google/gson
Se o seu problema é desempenho, você pode dar uma olhada em alguns benchmarks http://blog.takipi.com/the-ultimate-json-library-json-simple-vs-gson-vs-jackson-vs-json/ que se comparam.
fonte
Além de www.json.org, você também pode implementar seu próprio analisador usando javacc e combinando sua gramática / esquema pessoal. Veja esta nota em meu blog: http://plindenbaum.blogspot.com/2008/07/parsing-json-with-javacc-my-notebook.html
fonte
Eu escrevi uma biblioteca que usa json.org para analisar JSON, mas na verdade criará um proxy de uma interface para você. O código / JAR está em code.google.com.
http://fixjures.googlecode.com/
Não sei se funciona no J2ME. Como ele usa o Java Reflection para criar proxies, estou pensando que não funcionará. Além disso, ele atualmente tem uma forte dependência das Coleções do Google que desejo remover e provavelmente é muito pesado para suas necessidades, mas permite que você interaja com seus dados JSON da maneira que está procurando:
fonte
Basta fazer um objeto Json em java com a seguinte string Json. No seu caso
se o acima for sua string Json, apenas crie um objeto Json com ela.
fonte
Jackson para arquivos grandes, GSON para arquivos pequenos e JSON.simple para lidar com ambos.
fonte