jsonarrayjava
‘壹’ json数组转java对象怎么转
1、需要json的相关jar包
2、设置json格式字符串:
String str="{\"student\":[{\"name\":\"leilei\",\"age\":23},{\"name\":\"leilei02\",\"age\":23}]}";
3、建立相应的类:
public class StudentList {
List<Student> student;
public List<Student> getStudent() {
return student;
}
public void setStudent(List<Student> student) {
this.student = student;
}
}
public class Student {
private String name;
private int age;
//private StudentClass studentClass;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
4、测试程序
import java.util.List;
import org.codehaus.jackson.map.ObjectMapper;
public class JsonToJavaBean {
public static void main(String[] args) {
String str="{\"student\":[{\"name\":\"leilei\",\"age\":23},{\"name\":\"leilei02\",\"age\":23}]}";
Student stu = null;
List<Student> list = null;
try {
ObjectMapper objectMapper=new ObjectMapper();
StudentList studentList=objectMapper.readValue(str, StudentList.class);
list=studentList.getStudent();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
for(Student s:list){
System.out.println(s.getName());
}
}
‘贰’ JSON数组转成JAVA
org.json.JSONObject
用这个就可以实现,你上网上找这个包就可以了,里面封装了一些方法,可以将一个JSON字符串转换为一个JSONObject对象,也可以反向操作,具体的你看下它的API就知道了。
不如你的这个字符串就可以这么实现
public static void main(String[] args) throws JSONException {
String sJson = "[{'gwcxxid':'1','spsl':'2'},{'gwcxxid':'1','spsl':'2'},{'gwcxxid':'3','spsl':'4'}]";
JSONArray jsonArray = new JSONArray(sJson);
int iSize = jsonArray.length();
System.out.println("Size:" + iSize);
for (int i = 0; i < iSize; i++) {
JSONObject jsonObj = jsonArray.getJSONObject(i);
System.out.println("[" + i + "]gwcxxid=" + jsonObj.get("gwcxxid"));
System.out.println("[" + i + "]spsl=" + jsonObj.get("spsl"));
System.out.println();
}
}
‘叁’ Java中JSONArray如何获取数据
转化为json对象去做吧.JSON.parse()或者eval()都可以转化的
转化完之后 通过 对象的属性去拿值
比如说.
varjson=[{"name":"test",
"conditions":[
{"subject":"ip",
"predicate":"default",
"value":"10.180.26.1"}],
"actions":[{
"act":"forceedgetocache",
"seconds":2}]}];
varjsonObj=JSON.parse(json);
jsonObj.conditions就是你要的吧
‘肆’ json数组转java对象怎么转
有两种方法实现:
(1)直接转换:
创建JSONArray对象、JSONObject对象,通过put方法将其数据以键值对的形式填充,如例:
//假如有一个Java实体类Person,包括以下属性:phone、sex、married、address。
ArrayList<Person> persons = new ArrayList<Person>();
for (int i = 0; i < 3; i++) {
persons.add(new Person("138******67", "女", true, "北京朝阳区"));//填充Java实体类集合
}
JSONArray array = new JSONArray();// Json格式的数组形式
JSONObject obj;//json格式的单个对象形式
for (int i = 0; i < persons.size(); i++) {
obj = new JSONObject();
//依次填充每一个Java实体对象
try {
obj.put("phone", persons.get(i).getPhone());//json通过put方式以key-value形式填充
obj.put("sex", persons.get(i).getSex());
obj.put("married", persons.get(i).getMarried());
obj.put("address", persons.get(i).getAddress());
array.put(obj);//将JSONObject添加入JSONArray
} catch (JSONException e) {
e.printStackTrace();
}
}
(2)通过GSON工具实现:
只需要创建GSON对象,通过toJson方法转换即可。如例:
//模拟Java数据
Person person = new Person("敏敏", 23, "女", "北京市海淀区");
//创建GSON对象
Gson gson = new Gson();
//调用toJson方法即可转换为字符串的json格式
String json = gson.toJson(person);
‘伍’ 请问java如何清空JSONArray
JSONArray则是[]包裹起来的一个数组(Array)
如何清空jsonarray,有两种方法。
1、Java代码
JSONArrayjsonArray=newJSONArray("[]");
2、Java代码
for(inti=0,len=jsonArr.length();i<len;i++){
JSONObjectobj=jsonArr.getJSONObject(i);
obj.remove("key");
}
‘陆’ 如何自定义类的ArrayList转换为JsonArray在Java中
需要导入两个jar包 json-lib是用于转换json字符串的核心jar包,上面那个是辅助的。
‘柒’ java的JSONArray如何使用
从json数组中得到相应java数组,如果要获取java数组中的元素,只需要遍历该数组。
数组内容如下:
/**
* 从json数组中得到相应java数组
* JSONArray下的toArray()方法的使用
* @param str
* @return
*/
public static Object[] getJsonToArray(String str) {JSONArray jsonArray = JSONArray.fromObject(str);
return jsonArray.toArray(); }
3.从json数组中得到java数组,可以对该数组进行转化,如将JSONArray转化为String型、Long型、Double型、Integer型、Date型等等。
4.分别采用jsonArray下的getString(index)、getLong(index)、getDouble(index)、getInt(index)等方法。
5.同样,如果要获取java数组中的元素,只需要遍历该数组。
‘捌’ java中把json怎么转换成数组
使用原生的解析:
String json = "...";
//遍历数组里的值,得到每个独立的对象,然后获取对应的值设置到声明好的对象中,最终创建对象完成后添加到集合中,如我自己代码里的片段:
for (int j = 0; j < array.length(); j++) {
obj = array.getJSONObject(j);
Data data = new Data();
mDataList.add(data);
}
数组声明
在数组的声明格式里,“数据类型”是声明数组元素的数据类型,可以是java语言中任意的数据类型,包括简单类型和结构类型。“数组名”是用来统一这些相同数据类型的名称,其命名规则和变量的命名规则相同。
数组声明之后,接下来便是要分配数组所需要的内存,这时必须用运算符new,其中“个数”是告诉编译器,所声明的数组要存放多少个元素,所以new运算符是通知编译器根据括号里的个数,在内存中分配一块空间供该数组使用。利用new运算符为数组元素分配内存空间的方式称为动态分配方式。
以上内容参考:网络-数组
‘玖’ java的JSONArray怎么用比如有一个JSONArray是 [{..."a":123, "
importjava.text.ParseException;
importorg.json.JSONArray;
importorg.json.JSONObject;
publicclassTestJsonArray{
publicstaticvoidmain(String[]args)throwsParseException{
StringjsonStr="[{"a":123,"b":"hello","x":[{"inner":"InnerJSONObject"}]}]";
JSONArrayjsonArray=newJSONArray(jsonStr);
JSONObjectjsonObj=jsonArray.getJSONObject(0);
System.out.println(jsonObj);
inta=jsonObj.getInt("a");
Stringb=jsonObj.getString("b");
JSONArrayjsonArrayX=jsonObj.getJSONArray("x");
System.out.println(a);
System.out.println(b);
System.out.println(jsonArrayX);
System.out.println(jsonArrayX.getJSONObject(0).getString("inner"));
}
}