2011-06-22 42 views
0

我是一名Python的正派程序员。现在我不得不为我的聊天应用程序做一个Wowza模块。将通过Facebook帐户登录的应用程序和每个用户的状态保存在使用Java进行应用程序开发的Wowza服务器上,通过Flash客户端& RTMP进行连接。在线状态数据结构将在Python中像这样。将Python Dict迁移到Java和JSON

请告诉我如何代表它在Java中,我不变量“类型”所以familar在Java :(

x = { 
    10001: { 
     'status': 0, 
     'friends': {} 
    }, 
    10002: { 
     'status': 1, 
     'friends': { 
      10001: 0, 
      10003: 1 
     } 
    }, 
    10003: { 
     'status': 1, 
     'friends': { 
      10001: 0, 
      10003: 1 
     } 
    } 
} 

10001,10002等将是Facebook的用户ID ..和0,1将会是他们的在线/离线状态 如果连接了10001,那么数据结构会有一些小的修改,它会将10001的状态更改为1,并添加从Facebook检索到的所有朋友ID并更新其状态

x = { 
    10001: { 
     'status': 1, 
     'friends': { 
      10002: 1, 
      10003: 1   
     } 
    }, 
    10002: { 
     'status': 1, 
     'friends': { 
      10001: 1, 
      10003: 1 
     } 
    }, 
    10003: { 
     'status': 1, 
     'friends': { 
      10001: 1, 
      10003: 1 
     } 
    } 
} 

并且如果用户10001是断开连接,它会转到更早的阶段。 无论如何,我可以将它存储为json对象吗?或者有没有简单的方法来存储和检索数据?

回答

0

我所需要的只是http://www.json.org/javadoc/org/json/JSONObject.html库。 我可以使用它,像为每个对象添加'类型'一点点挣扎,并不能像在Python中一样创建树。

感谢mandubian和jtoberon :))

import net.sf.json.JSONException; 
import net.sf.json.JSONObject; 

public class JSONExample { 
    JSONObject json; 
    JSONObject objJSON; 
    JSONObject objObjJSON; 

    public void addtoJSON(){ 
     json = new JSONObject(); 
     objJSON= new JSONObject(); 
     objObjJSON =new JSONObject(); 

     //adding last tree 
     objObjJSON.put(10001, 0); 
     objObjJSON.put(10002, 1); 

     //adding secondary tree 
     objJSON.put("status",1); 
     objJSON.put("friends",objObjJSON); 

     //added root tree 
     objJSON.put(10003,objJSON); 

     System.out.println("JSON is " + objJSON); 


    } 

} 
0

这取决于你想要做什么......
如果你可以使用诸如Google Gson之类的json库,那么从Java管理JSON是完美的。 那么如果你想自己编码,你只是管理整数和字符串,这不是很难...
一个JSON结构只是一个数组或一个映射键/值,其中键是一个字符串,值是一个简单的值或一个复杂的,因此一个HashMap或数组...
反正一般,它更容易直接使用GSON;)

1

我认为通过存储和检索,你的意思是缓存在内存中,因此: (1)创建javabean类来封装数据。 Java HashMap与Python字典非常相似。你为什么不尝试用Java编写类,就好像它们是python一样,用结果更新你的问题,然后人们可以帮助你解决诸如没有真正的python等价的java泛型的细节。 (2)使用其中一个对象< - > JSON映射框架,以便将实例序列化到JSON或从JSON序列化实例。 Gson和杰克逊很受欢迎。