对象转json在.net 里最常见的是两种方式:
1. 第三方工具 Newtonsoft , 非常好用;。
2. .net 自身带的 #2 楼已说。
但在.net 的 MVC 3 中, 可以很简单地将对象转化为json.。
public JsonResult GetListJSON() 。
{
List<MyClass> list = db.SortList.ToList();。
return Json(list, JsonRequestBehavior.AllowGet);。
}
只要你能得到 list 对象, 可以直接用 Json 方法将 list 对象转换为 JsonResult 的, 其实也相当于json 字符串的了。 然后你在前台用 jquery 写个什么 $.post 或 $.ajax 接收就好了。
可以使用jackson的 new ObjectMapper().readValue(String, bean.class);。
或者使用 JSONObject.toBean(String,bean.class);。
都可以实现json转化为bean。
而 jackson 或者 JSONObject 的jar包网上均有下载,把下载的jar导入你的项目中即可。
JSON-lib这个Java类包用于把bean,map和XML转换成JSON并能够把JSON转回成bean和DynaBean。
下载地址:
还要需要的第3方包:
org.apache.commons(3.2以上版本)。
org.apache.oro
net.sf.ezmorph(ezmorph-1.0.4.jar)。
nu.xom
1、List
Java代码
boolean[] boolArray =newboolean[]; 。
JSONArray jsonArray1 = JSONArray.fromObject( boolArray ); 。
System.out.println( jsonArray1 ); 。
// prints [true,false,true] 。
List list =newArrayList(); 。
list.add("first"); 。
list.add("second"); 。
JSONArray jsonArray2 = JSONArray.fromObject( list ); 。
System.out.println( jsonArray2 ); 。
// prints ["first","second"] 。
JSONArray jsonArray3 = JSONArray.fromObject("['json','is','easy']"); 。
System.out.println( jsonArray3 ); 。
// prints ["json","is","easy"] 。
2、Map
Java代码
Map map =newHashMap(); 。
map.put("name","json"); 。
map.put("bool", Boolean.TRUE ); 。
map.put("int",newInteger(1) ); 。
map.put("arr",newString[] ); 。
map.put("func","function(i)"); 。
JSONObject json = JSONObject.fromObject( map ); 。
System.out.println( json ); 。
//{"func":function(i),"arr":["a","b"],"int":1,"name":"json","bool":true} 。
3、BEAN
Java代码
/**
* Bean.java。
private String name = "json"; 。
private int pojoId = 1; 。
private char[] ptions = new char[]; 。
private String func1 = "function(i)"; 。
private JSONFunction func2 = new JSONFunction(new String[],"return this.options[i];");。
*/
JSONObject jsonObject = JSONObject.fromObject(newJsonBean() ); 。
System.out.println( jsonObject ); 。
//{"func1":function(i),"pojoId":1,"name":"json","options":["a","f"],"func2":function(i)} 。
4、BEANS
Java代码
/**
* private int row ;。
private int col ;。
private String value ;。
*
*/
List list =newArrayList(); 。
JsonBean2 jb1 =newJsonBean2(); 。
jb1.setCol(1); 。
jb1.setRow(1); 。
jb1.setValue("xx"); 。
JsonBean2 jb2 =newJsonBean2(); 。
jb2.setCol(2); 。
jb2.setRow(2); 。
jb2.setValue(""); 。
list.add(jb1); 。
list.add(jb2); 。
JSONArray ja = JSONArray.fromObject(list); 。
System.out.println( ja.toString() ); 。
//[,] 。
5、String to bean。
Java代码
String json =",array:[1,2]}"; 。
JSONObject jsonObject = JSONObject.fromString(json); 。
Object bean = JSONObject.toBean( jsonObject ); 。
assertEquals( jsonObject.get("name"), PropertyUtils.getProperty( bean,"name") ); 。
assertEquals( jsonObject.get("bool"), PropertyUtils.getProperty( bean,"bool") ); 。
assertEquals( jsonObject.get("int"), PropertyUtils.getProperty( bean,"int") ); 。
assertEquals( jsonObject.get("double"), PropertyUtils.getProperty( bean,"double") ); 。
assertEquals( jsonObject.get("func"), PropertyUtils.getProperty( bean,"func") ); 。
List expected = JSONArray.toList( jsonObject.getJSONArray("array") ); 。
assertEquals( expected, (List) PropertyUtils.getProperty( bean,"array") ); 。
Java代码
String json =""; 。
JSONObject jsonObject = JSONObject.fromString(json); 。
JsonBean2 bean = (JsonBean2) JSONObject.toBean( jsonObject, JsonBean2.class); 。
assertEquals( jsonObject.get("col"),newInteger( bean.getCol()) ); 。
assertEquals( jsonObject.get("row"),newInteger( bean.getRow() ) ); 。
assertEquals( jsonObject.get("value"), bean.getValue() ); 。
6 json to xml
1)
JSONObject json = new JSONObject( true );。
String xml = XMLSerializer.write( json );。
<o class="object" null="true">。
2)
JSONObject json = JSONObject.fromObject("");。
String xml = XMLSerializer.write( json );。
<o class="object">。
<name type="string">json</name>。
<bool type="boolean">true</bool>。
<int type="number">1</int>。
</o>
<o class="object">。
<name type="string">json</name>。
<bool type="boolean">true</bool>。
<int type="number">1</int>。
</o>
3)
JSONArray json = JSONArray.fromObject("[1,2,3]");。
String xml = XMLSerializer.write( json );。
<a class="array">。
<e type="number">1</e>。
<e type="number">2</e>。
<e type="number">3</e>。
</a>
7 、xml to json
<a class="array">。
<e type="function" params="i,j">。
return matrix[i][j];。
</e>
</a>
<a class="array">。
<e type="function" params="i,j">。
return matrix[i][j];。
</e>
</a>
JSONArray json = (JSONArray) XMLSerializer.read( xml );。
System.out.println( json );。
// prints [function(i,j)] 。
请参考
json使用前必须先引入json的相关jar包,我这里用的是json-lib-2.4-jdk15.jar这个版本的jar包。如果大家没有的话可以直接在我这里下载:点击打开链接。
导入完jar就可以正式开始开发了,这里先看一个对象转json的例子:
对象的具体内容如下:
[java] view plain copy。
package myapi.json.demo.entity; 。
import java.util.List; 。
public class MyBean { 。
private String Id; 。
private String Name; 。
private List CardNum; 。
public MyBean(String id, String name, List cardNum) { 。
super(); 。
Id = id; 。
Name = name; 。
CardNum = cardNum; 。
}
JSON-lib这个Java类包用于把bean,map和XML转换成JSON并能够把JSON转回成bean和DynaBean。
下载地址:http://json-lib.sourceforge.net/。
还要需要的第3方包:
org.apache.commons(3.2以上版本)。
org.apache.oro
net.sf.ezmorph(ezmorph-1.0.4.jar)。
nu.xom
1、List
Java代码
boolean[] boolArray =newboolean[]{true,false,true}; 。
JSONArray jsonArray1 = JSONArray.fromObject( boolArray ); 。
System.out.println( jsonArray1 ); 。
// prints [true,false,true] 。
List list =newArrayList(); 。
list.add("first"); 。
list.add("second"); 。
JSONArray jsonArray2 = JSONArray.fromObject( list ); 。
System.out.println( jsonArray2 ); 。
// prints ["first","second"] 。
JSONArray jsonArray3 = JSONArray.fromObject("['json','is','easy']"); 。
System.out.println( jsonArray3 ); 。
// prints ["json","is","easy"] 。
2、Map
Java代码
Map map =newHashMap(); 。
map.put("name","json"); 。
map.put("bool", Boolean.TRUE ); 。
map.put("int",newInteger(1) ); 。
map.put("arr",newString[]{"a","b"} ); 。
map.put("func","function(i){ return this.arr[i]; }"); 。
JSONObject json = JSONObject.fromObject( map ); 。
System.out.println( json ); 。
//{"func":function(i){ return this.arr[i]; },"arr":["a","b"],"int":1,"name":"json","bool":true} 。
3、BEAN
Java代码
/**
* Bean.java。
private String name = "json"; 。
private int pojoId = 1; 。
private char[] ptions = new char[]{'a','f'}; 。
private String func1 = "function(i){ return this.options[i]; }"; 。
private JSONFunction func2 = new JSONFunction(new String[]{"i"},"return this.options[i];");。
*/
JSONObject jsonObject = JSONObject.fromObject(newJsonBean() ); 。
System.out.println( jsonObject ); 。
//{"func1":function(i){ return this.options[i]; },"pojoId":1,"name":"json","options":["a","f"],"func2":function(i){ return this.options[i]; }} 。
4、BEANS
Java代码
/**
* private int row ;。
private int col ;。
private String value ;。
*
*/
List list =newArrayList(); 。
JsonBean2 jb1 =newJsonBean2(); 。
jb1.setCol(1); 。
jb1.setRow(1); 。
jb1.setValue("xx"); 。
JsonBean2 jb2 =newJsonBean2(); 。
jb2.setCol(2); 。
jb2.setRow(2); 。
jb2.setValue(""); 。
list.add(jb1); 。
list.add(jb2); 。
JSONArray ja = JSONArray.fromObject(list); 。
System.out.println( ja.toString() ); 。
//[{"value":"xx","row":1,"col":1},{"value":"","row":2,"col":2}] 。
5、String to bean。
Java代码
String json ="{name=\"json\",bool:true,int:1,double:2.2,func:function(a){ return a; },array:[1,2]}"; 。
JSONObject jsonObject = JSONObject.fromString(json); 。
Object bean = JSONObject.toBean( jsonObject ); 。
assertEquals( jsonObject.get("name"), PropertyUtils.getProperty( bean,"name") ); 。
assertEquals( jsonObject.get("bool"), PropertyUtils.getProperty( bean,"bool") ); 。
assertEquals( jsonObject.get("int"), PropertyUtils.getProperty( bean,"int") ); 。
assertEquals( jsonObject.get("double"), PropertyUtils.getProperty( bean,"double") ); 。
assertEquals( jsonObject.get("func"), PropertyUtils.getProperty( bean,"func") ); 。
List expected = JSONArray.toList( jsonObject.getJSONArray("array") ); 。
assertEquals( expected, (List) PropertyUtils.getProperty( bean,"array") ); 。
Java代码
String json ="{\"value\":\"xx\",\"row\":1,\"col\":1}"; 。
JSONObject jsonObject = JSONObject.fromString(json); 。
JsonBean2 bean = (JsonBean2) JSONObject.toBean( jsonObject, JsonBean2.class); 。
assertEquals( jsonObject.get("col"),newInteger( bean.getCol()) ); 。
assertEquals( jsonObject.get("row"),newInteger( bean.getRow() ) ); 。
assertEquals( jsonObject.get("value"), bean.getValue() ); 。
6 json to xml
1)
JSONObject json = new JSONObject( true );。
String xml = XMLSerializer.write( json );。
<o class="object" null="true">。
2)
JSONObject json = JSONObject.fromObject("{\"name\":\"json\",\"bool\":true,\"int\":1}");。
String xml = XMLSerializer.write( json );。
<o class="object">。
<name type="string">json</name>。
<bool type="boolean">true</bool>。
<int type="number">1</int>。
</o>
<o class="object">。
<name type="string">json</name>。
<bool type="boolean">true</bool>。
<int type="number">1</int>。
</o>
3)
JSONArray json = JSONArray.fromObject("[1,2,3]");。
String xml = XMLSerializer.write( json );。
<a class="array">。
<e type="number">1</e>。
<e type="number">2</e>。
<e type="number">3</e>。
</a>
7 、xml to json
<a class="array">。
<e type="function" params="i,j">。
return matrix[i][j];。
</e>
</a>
<a class="array">。
<e type="function" params="i,j">。
return matrix[i][j];。
</e>
</a>
JSONArray json = (JSONArray) XMLSerializer.read( xml );。
System.out.println( json );。
// prints [function(i,j){ return matrix[i][j]; }]。
原文地址:http://www.qianchusai.com/%E5%AF%B9%E8%B1%A1%E8%BD%ACjson%E7%9A%84%E5%8C%85.html