我正在尝试使用gson将JSON字符串读入Java程序。在下面的示例代码中-
Java程序具有3个对象类。json字符串中的数据将具有可变数量的每个类的对象实例。我试图创建一个示例JSON-来解析..但在解析各种对象时遇到了问题。
这是使用json字符串的正确方法还是可以通过其他方式完成呢。您将如何使用不同类的可变对象解析json。谢谢,
package newpackage;
import java.util.ArrayList;
import com.google.gson.Gson;
public class jsonsample {
public static void main(String[] args) {
String jsonstring = "{'TableA':[{'field_A1':'A_11'},{'field_A1':'A_12'}]}"
+ ",{'TableB':[{'field_B1':'B_11','field_B2':'B_12','field_B3':['abc','def','ghi']},"
+ "{'field_B1':'B_21','field_B2':'B_Field22','field_B3':['mno','pqr','xyz']}]"
+ ",{'TableC':[{'field_C1':'C_11','field_C2':'C_12','field_C3':'C_13'},"
+ "{'field_C1':'C_21','field_C2':'C_22','field_C3':'C_23'},{'field_C1':'C_31','field_C2':'C_32','field_C3':'C_33'}]}";
jsonstring = jsonstring.replace('\'', '"');
}
public class TableA {
String field_A1;
public TableA(String a){
this.field_A1 = a;
}
@Override
public String toString() {
return ("Table A" + " " + this.field_A1);
}
}
public class TableB {
String field_B1;
String field_B2;
ArrayList<String> field_B3 = new ArrayList<String>();
public TableB(String a, String b, ArrayList<String> c){
this.field_B1 = a;
this.field_B2 = b;
this.field_B3 = c;
}
@Override
public String toString() {
return ("Table B" + " " + this.field_B1+ " " + this.field_B2);
}
}
public class TableC {
String field_C1;
String field_C2;
String field_C3;
public TableC(String a, String b, String c){
this.field_C1 = a;
this.field_C2 = b;
this.field_C3 = c;
}
@Override
public String toString() {
return ("Table C" + " " + this.field_C1 + " " + this.field_C2 + " " + this.field_C3);
}
}
}
首先,您必须确定您的基本json结构是什么?最大标识符,最大值,最大对象,最大数组…
让我们认为这是我完整的json结构:
{
"array": [
1,
2,
3
],
"boolean": true,
"null": null,
"number": 123,
"object": {
"a": "b",
"c": "d",
"e": "f"
},
"string": "Hello World"
}
这些是我的Java类:
public class Object
{
public string a { get; set; }
public string c { get; set; }
public string e { get; set; }
}
public class RootObject
{
public ArrayList<int> array { get; set; }
public Boolean boolean { get; set; }
public Object @null { get; set; }
public int number { get; set; }
public Object @object { get; set; }
public string @string { get; set; }
}
对于Java;
String data = "jsonString";
RootObject root = new GsonBuilder().create().fromJson(data, RootObject.class);
对于杰森;
Gson gson = new GsonBuilder().setDateFormat("dd/MM/yyyy").create();
String json = gson.toJson(obj);
问题内容: 我正在使用jQuery将JSON发布到Java服务器,但是我认为JSON一定是错误的。这是我的数据及其发送方式的示例: 我正在使用Wicket的AbstractAjaxBehavior接收数据,并希望获得一个我可以解析的JSON字符串。当我获得传递的参数的映射时,键集如下所示: 显然,我可以轻松获取名称和描述的值,但是我的项目数组的键弄乱了。我敢肯定这很简单,但是我似乎一直在解决这个问
问题内容: 如何将json格式的jqGrid数据发送到服务器?我是否必须使用任何外部库或脚本来实现? 谢谢! update1 :多余的不应该在那里 问题答案: 您从另一个问题出发的方法还可以,但是在序列化数组方面遇到问题。我看到的最可靠,最标准的方法是将所有jqGrid数据序列化为JSON(例如,关于JSON.stringify函数: 参数的名称,等等,您可以选择任何您喜欢的。
问题内容: ‘create’方法在控制器中并映射到“ / login”,我正在设置正确的内容类型并接受来自curl客户端的标头。我一直都收到422 http状态响应。 有什么建议? 问题答案: 如果您发送的是正确的标题,则不需要执行“ ActiveSupport :: JSON.decode”-rails会为您完成。 您需要在帖子中设置以下标题。 422表示不可处理实体-通常表示验证失败。 您应该
问题内容: 好的,我正在开发一个程序,该程序将部署到许多机器(Windows,Linux,AIX,z / Linux,openVMS等)上。我希望该应用程序包含SOAP Web服务,但是我不想捆绑tomcat或为这些服务运行单独的服务(我希望它们与应用程序的其余部分在同一过程中)。 基本上,我正在寻找可以定义类的东西(例如)。我也可以编写WSDL或任何其他类型的服务描述。我想要这样的东西: 显然,
问题内容: 我有这个JSON字符串。我想将其发布到服务器(即使用POST方法)。如何在Android中完成? JSON字串: 如何形成此JSON数组并将其发布到服务器? 问题答案: 我自己做的。 这就是我们如何将JSON数据发送到服务器。
问题内容: 我想在本地实现Java HTTP服务器,这意味着服务器计算机将由我控制。我预计将不超过20个客户端向其发送请求。我想知道如何去做: 我应该使用像Apache Tomcat这样的J2EE servlet容器吗? 我可以使用J2SE类并使用它们来构建它吗? 有没有其他选择? 您的经验表明什么? 问题答案: Sun 1.6 JRE中嵌入了一个简单的HTTP服务器。它不兼容JavaEE或ser