2012-05-17 50 views
1

我搜索了很多网站,但找不到解决方案,我的问题。基本上我的要求有点棘手,有时候我自己觉得这是不可能的。谁能帮我?JSON数组与对象在不同的​​对象中

我的要求是我有3个类从接口继承。我现在想创建一个JSON阵列,其具有以下结构:

所有感谢乌尔解决我的问题的兴趣
interface i { 
} 

class A implements i { 
    field l; 
    field 2; 
} 

首先, 所有我在我的问题提到数据库持久对象的对象。 我有联系人对象,通讯对象和地址对象,都是db持久对象 单个联系人有多个通讯和多个地址。 所以,接触的持续在一个表中,并在2级不同的表的通信和地址,参照接触 的唯一标识符一些东西一样

接触表:

ID名姓

3 XYZ ABC

通信表:

ID的ContactID数

ADRESS表:

ID的ContactID地方 1 3印度

在数据库持续我想创建JSON数组,我想在请求到服务器来发送之后。 Gson()。toJson(collection)在字符串中返回一个json,我想在服务器端发送这个json。的字符串看起来是如下

[{"firstname":"xyz","lastname":"abc"},   //contact   
{"number":"99999999"},      //communication 
{"place":"india"}        //address 
] 

但我的服务器中实现它接受格式

[ {"firstname":"xyz", 
"lastname":"abc", 
{"number":"999999999"} 
{"place":"india"} 
}] 

服务器被编码为这样的整个JSON是反序列化到接触的对象的JSON,通信,地址

我希望我很清楚我的问题这时候alteast 再次感谢很多

class B implements i { 
    field 3; 
    field 4; 
} 

class C implements i { 
    field 5; 
    field 6; 
} 

现在我想JSON数组是以下格式的,这是JSON类型的

[ 
    "field1": "value", 
    "field2": "value", 
    "objectB": "{ 'field3':'value','field4':'value'}", 
    "objectC": "{ 'field5':'value','field6':'value'}" 
] 

我的需求量的是B,C类应该是A类的字段。

可以给我解决方案的一种方法是让B和C类的A的内部类,但是我的对象结构不会允许这样做。对此表示高度赞赏。

在此先感谢

+1

它是哪一种语言? Java的? – carlosfigueira

+0

是,在android系统 – srivani

回答

2

我有几个问题/评论:

  • 如果你的JSON是代表你的类,它应该是一个 对象,而不是一个数组。将支架切换到花括号。

  • 如果B和C的实例存储在A实例的字段中,您应该更新您的类模型以反映它。目前,他们只是 三个不同的类别。所有的字段都是字符串,基于您发布的JSON。如果添加类型信息的类声明的领域,这将有助于。

  • 发布您用于生成JSON的代码并不会造成什么影响。

0

我还没有发现任何解决我的上述问题,得到一个解决方案,我不得不改变我的对象结构 现在我得到了我所需要的JSON格式。

设置联系对象的值之后,我改变了我的联系对象包含了通信和地址字段

public class Contact 
{ 
     String firstName; 
     String lastName; 
     Communication comm[]; 
     Address address[]; 
} 

通信和地址是两个不同的类

new Gson().toJson(contact); 

给我我需要的json字符串

参考:

http://en.wikipedia.org/wiki/GSON