1. java怎么把数据转成json 数组
有两种方法实现:
(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);
2. fastjson中怎么把java对象转化为json对象
写入以下代码即可实现:
public static void main(String[] args) {
User_DAL userDal = new User_DAL();// 创建数据访问对象
ResponseResult<User> ret = userDal.getUserList("id < 50", 2, 10);// 查询ID小于50的用户,保存到分页类中
String json = JSON.toJSONString(ret, true); // 将对象转换成json字符串,true为格式化输出
System.out.println(json);
List<User> list = JSON.parseArray("{{name:123},{name:456}}", User.class);//将json字符串,转换成Java对象数组
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i).getName());
}
}
3. java 含有数组的字符串怎么转化为json对象
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. 怎么将数组转为json
要使用json来传输数据,必须将所承载的数据转换成json的格式。json的格式如下:
JSON建构于两种结构:
1. “名称/值”对的集合。不同的语言中,它被理解为对象(object),纪录(record),结构(struct),字典(dictionary),哈希表(hash table),有键列表(keyed list),或者关联数组 (associative array)。
2. 值的有序列表。在大部分语言中,它被理解为数组(array)。
这些都是常见的数据结构。事实上大部分现代计算机语言都以某种形式支持它们。这使得一种数据格式在同样基于这些结构的编程语言之间交换成为可能。
JSON具有以下这些形式:
1.对象是一个无序的“‘名称/值’对”集合。一个对象以“{”(左括号)开始,“}”(右括号)结束。每个“名称”后跟一个“:”(冒号);“‘名称/值’ 对”之间使用“,”(逗号)分隔。
例:{"name":"张三","age":20,"birthday":"1982-07-20"}
这是对象在json中的表示形式.即{"key1":"value1","key2":"value2",...}
2.数组是值(value)的有序集合。一个数组以“[”(左中括号)开始,“]”(右中括号)结束。值之间使用“,”(逗号)分隔。
例:["张三","李四","王五"]
这是数组在json中的表示形式.即[value1,value2,value3,....]
3.值(value)可以是双引号括起来的字符串(string)、数值(number)、true、false、 null、对象(object)或者数组(array)。这些结构可以嵌套。
4.字符串(string)是由双引号包围的任意数量Unicode字符的集合,使用反斜线转义。一个字符(character)即一个单独的字符串(character string)。
字符串(string)与C或者Java的字符串非常相似。
5.数值(number)也与C或者Java的数值非常相似。除去未曾使用的八进制与十六进制格式。除去一些编码细节。
注:你只要记住前两种形式就可以了。
注意:key一定要用引号,而value如果是字符串,也一定要用引号引起来。切记,有的系统中,只当双引号是有效的,而不认单引号。所以建议用双引号。
更多的格式内容请访问http://json.org/json-zh.html
以上说了json的表示形式,那么现在来看一下它的使用:
因为语言的不同,在action中对json的使用方式也不一样,但思路是一样的,那就是将json转换为对象或数组,我们这里只提及客户端的javascript中json的转换。你使用哪种语言,请参照本语言使用json的方式。
1.首先,在javascript中要获取前端页面中所有输入域的值,保存到数组或一个对象中。
2.将对象或数组转换成JSON格式。有一个js文件能让我们转换起来非常方便,就是prototype.js,导入这个文件后,使用(对象.toJSON())或(数组.toJSON()),这个对象或数组就被保存成为了JSON格式的数据
3.将这个JSON对象传入action中进行处理,然后返回。
4.如果返回的是一个json,那么各户端接收以后需要将json格式的数据转换为javascrip中的对象或数组。同样使用prototype.js,(json对象.evalJSON());好了,这样就转换成js中的对象或数组了。同样你也可以使用javascript中的eval函数进行转换。(eval(json对象)),这两种方式都可以效果是相同的,都是返回的javascript的对象或数组。你现在就可以在客户端的javascript中使用这个对象或数组了
注意:prototype.js与json.js可能会有冲突,建议只使用一种。当然在这里没有介绍json.js的使用,原因是prototype.js的功能已经十分强大,在使用prototype.js时,已经没有必要再使用json.js了
5. 如何将java对象数组转化为JSON树
//接受一个List
net.sf.json.JSONArray.fromObject(dataList);
//接受一个bean
net.sf.json.JSONObject.fromObject(Objectobject);
利用json-lib,封装好对象的层级关系后,直接可以用上面两个方法来转换json格式数据。
6. 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运算符为数组元素分配内存空间的方式称为动态分配方式。
以上内容参考:网络-数组
7. 跪求:java中如何将对象数组转换为json数据格式(在线等)
Json必需的包
commons-httpclient-3.1.jar
commons-lang-2.4.jar
commons-logging-1.1.1.jar
json-lib-2.2.3-jdk13.jar
ezmorph-1.0.6.jar
commons-collections-3.2.1.jar
List list = new ArrayList();
list.add( "first" );
list.add( "second" );
JSONArray jsonArray2 = JSONArray.fromObject( list );
8. Java:传过来的是个JSON字符串组成的数组,如何将其解析成JSON对象呢
JSONArray jsonArr = JSONArray.fromObject(jsonStr);