如何在Java中序列化JSON对象 [英] How to serialize JSON object in java

查看:91
本文介绍了如何在Java中序列化JSON对象的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用Voldemort存储我的数据.我的关键字是单词,值是单词和URL的出现次数.例如:

Hi I am using Voldemort to store my data. My key is a word and values are number of occurrence of the word and the URL. For example:

key :question
value: 10, www.stackoverflow.com

我正在使用Json对象放置我的值. 我的代码看起来像这样

I am using Json object to put my values. My code looks like this

import org.json.JSONObject;
import com.metaparadigm.jsonrpc.JSONSerializer;
import voldemort.client.ClientConfig;
import voldemort.client.SocketStoreClientFactory;
import voldemort.client.StoreClient;
import voldemort.client.StoreClientFactory;

public class ClientExample { 
  public static void main (String [] args) { 
    String bootstrapUrl = "tcp://localhost:6666";

    ClientConfig cc = new ClientConfig (); 
    cc.setBootstrapUrls (bootstrapUrl); 
    String[] valuePair = new String[2];
    int val = 1;
    StoreClientFactory factory = new SocketStoreClientFactory (cc); 
    StoreClient client = factory.getStoreClient("test"); 
    JSONObject json = new JSONObject(); 
    json.put("occurence",val); 
    json.put("url", "www.cnn.com"); 
    client.put("foo", json); 
  } 
} 

我的store.xml看起来像这样

And my store.xml looks like this

<stores> 
  <store> 
    <name>test</name> 
    <persistence>bdb</persistence> 
    <routing>client</routing> 
    <replication-factor>1</replication-factor> 
    <required-reads>1</required-reads> 
    <required-writes>1</required-writes> 
    <key-serializer> 
      <type>string</type> 
    </key-serializer> 
    <value-serializer> 
      <type>java-serialization</type> 
     <schema-info>"Compount Types"</schema-info> 
    </value-serializer> 
  </store> 
</stores> 

当我尝试运行代码时,出现以下异常: **

While i was trying to run the code i am getting following exception: **

线程主"中的异常 voldemort.serialization.SerializationException: java.io.NotSerializableException: org.json.JSONObject位于 voldemort.serialization.ObjectSerializer.toBytes(ObjectSerializer.java:47) 在 voldemort.store.serialized.SerializingStore.put(SerializingStore.java:109) 在 voldemort.store.DelegatingStore.put(DelegatingStore.java:68) 在 voldemort.client.DefaultStoreClient.put(DefaultStoreClient.java:208) 在 voldemort.client.DefaultStoreClient.put(DefaultStoreClient.java:193) 在 ClientExample.main(ClientExample.java:27) 造成原因: java.io.NotSerializableException: org.json.JSONObject位于 java.io.ObjectOutputStream.writeObject0(未知 来源) java.io.ObjectOutputStream.writeObject(未知 来源) voldemort.serialization.ObjectSerializer.toBytes(ObjectSerializer.java:44)

Exception in thread "main" voldemort.serialization.SerializationException: java.io.NotSerializableException: org.json.JSONObject at voldemort.serialization.ObjectSerializer.toBytes(ObjectSerializer.java:47) at voldemort.store.serialized.SerializingStore.put(SerializingStore.java:109) at voldemort.store.DelegatingStore.put(DelegatingStore.java:68) at voldemort.client.DefaultStoreClient.put(DefaultStoreClient.java:208) at voldemort.client.DefaultStoreClient.put(DefaultStoreClient.java:193) at ClientExample.main(ClientExample.java:27) Caused by: java.io.NotSerializableException: org.json.JSONObject at java.io.ObjectOutputStream.writeObject0(Unknown Source) at java.io.ObjectOutputStream.writeObject(Unknown Source) at voldemort.serialization.ObjectSerializer.toBytes(ObjectSerializer.java:44)

**

请告诉我如何序列化JSON对象.谢谢.

Could you please tell me how to serialize JSON object.Thanks in advance.

推荐答案

看看 Gson 库.它对对象映射和序列化执行了很好的JSON.

Have a look at Gson library. It does nice JSON to object mapping and serialization.

这篇关于如何在Java中序列化JSON对象的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆