Java 从字符串中提取表数据,然后插入到数据库中
我有一个字符串,我在提交表单后从UI中获取该字符串。它从UI中的动态表中读取数据,然后在提交后创建一个如下所示的数据列表 [{“keyname0”:“url”,“keyvalue0”:“},{“keyname1”:“年份”,“keyvalue1”:“2013”},{“keyname2”:“法案”,“keyvalue2”:“参议院”},{“keyname3”:“类型”,“keyvalue3”:“html”}] 我在数据库中有两列。一个是“KEYNAME”,另一个是“KEYVALUE”。 我想将KEYNAME和KEYVALUE的每个值插入数据库 有人能帮忙吗?使用Jackson:Java 从字符串中提取表数据,然后插入到数据库中,java,arrays,arraylist,Java,Arrays,Arraylist,我有一个字符串,我在提交表单后从UI中获取该字符串。它从UI中的动态表中读取数据,然后在提交后创建一个如下所示的数据列表 [{“keyname0”:“url”,“keyvalue0”:“},{“keyname1”:“年份”,“keyvalue1”:“2013”},{“keyname2”:“法案”,“keyvalue2”:“参议院”},{“keyname3”:“类型”,“keyvalue3”:“html”}] 我在数据库中有两列。一个是“KEYNAME”,另一个是“KEYVALUE”。 我想将KE
private static final KEYNAME = "keyname";
private static final KEYVALUE = "keyvalue";
final ObjectMapper mapper = new ObjectMapper();
final JsonNode data = mapper.readTree(theString);
String key, value;
Iterator<Map.Entry<String, JsonNode>> members;
Map.Entry<String, JsonNode> member;
for (final JsonNode element: data) {
key = null; value = null;
members = element.fields();
while (members.hasNext()) {
member = members.next();
if (member.getKey().startsWith(KEYNAME))
key = member.getValue().textValue();
if (member.getKey().startsWith(KEYVALUE))
value = member.getValue().textValue();
}
// check if key or value are null, if yes problem!
// process key and value
}
private static final KEYNAME=“KEYNAME”;
私有静态最终KEYVALUE=“KEYVALUE”;
最终ObjectMapper映射器=新ObjectMapper();
最终JsonNode数据=mapper.readTree(字符串);
字符串键,值;
迭代器成员;
地图。参赛会员;
for(最终JsonNode元素:数据){
key=null;value=null;
members=element.fields();
while(members.hasNext()){
member=members.next();
if(member.getKey().startsWith(KEYNAME))
key=member.getValue().textValue();
if(member.getKey().startsWith(KEYVALUE))
value=member.getValue().textValue();
}
//检查键或值是否为空,如果是,则为问题!
//过程关键和价值
}
Ugh。“比你更灵活的设计”再次设计:/你不能将UI发送的内容更改为更健全的JSON吗?是的,我可以更改,但我不确定如何准备数据列表,以便更容易插入数据库。你能发布一些示例列表,以便我尝试制作列表吗?好的,而不是“keyname”/“keyvalue”,创建一个JSON对象,其中“keyname”的值作为键,“keyvalue”的值作为值。首先,这将更容易处理。例如,{“url”:http://www.google.com“,“etc”:“etc”}
实际上这是一个动态表,每次我都必须按下“添加额外行”按钮,这将创建一个新行来添加一对新值。所以没有固定名称。是的,那又怎样?JSON对象成员名称可以是任何字符串。我会试试这个,让你知道。希望这能解决我的问题。再次感谢您的快速帮助。