在本文中,您将会了解到关于Json.net[v3.5]对对象和JSON字符串的使用的新资讯,同时我们还将为您解释json对象与json字符串的相关在本文中,我们将带你探索Json.net[v3.5]对
在本文中,您将会了解到关于Json.net[v3.5]对对象和JSON字符串的使用的新资讯,同时我们还将为您解释json对象与json字符串的相关在本文中,我们将带你探索Json.net[v3.5]对对象和JSON字符串的使用的奥秘,分析json对象与json字符串的特点,并给出一些关于.net 使用 Newtonsoft.Json 输出树状 json字符串、C#对象转JSON字符串和JSON字符串转对象、fastjson--Gson生成Json字符串,并且解析Json字符串生成对象、fastjson对含有数组的json字符串的转换为json对象的实用技巧。
本文目录一览:- Json.net[v3.5]对对象和JSON字符串的使用(json对象与json字符串)
- .net 使用 Newtonsoft.Json 输出树状 json字符串
- C#对象转JSON字符串和JSON字符串转对象
- fastjson--Gson生成Json字符串,并且解析Json字符串生成对象
- fastjson对含有数组的json字符串的转换为json对象
Json.net[v3.5]对对象和JSON字符串的使用(json对象与json字符串)
Json.net[v3.5]对对象和JSON字符串的使用
简介:Json.net[v3.5]对对象和JSON字符串的使用
本文将介绍一个非常简单实用的例子,共享学习下
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
以控制台应用程序为例子,我们需要在Program.cs中添加如下代码:
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
新建实体类:
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
程序运行效果图:
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Newtonsoft.Json.Net35下载地址
.net 使用 Newtonsoft.Json 输出树状 json字符串
测试环境:.net FrameWork 4.0
操作系统:window Server 2008 R2
Newtonsoft.Json 下载地址:http://json.codeplex.com/
1、解压缩下载文件夹:Json50r8
2、引入Json50r8/Bin 下的 相对应.net版本的dll文件 到项目中
执行以下代码:
using System; using System.Collections.Generic; using Newtonsoft.Json; public partial class _Default : System.Web.UI.Page { private string jsonString = @"[ { 'id': '1','text': '电脑整机','parentid': '0','children': [ { 'id': '2','text': '笔记本','parentid': '1','children': [ { 'id': '31','text': 'SONY','parentid': '2','children': [] },{ 'id': '23','text': 'LENOVO',{ 'id': '25','text': 'IBM',{ 'id': '26','text': '宏基',{ 'id': '27','text': '联想',{ 'id': '28','text': '联想2','children': [] } ] },{ 'id': '3','text': '上网本',{ 'id': '4','text': '平板电脑',{ 'id': '5','text': '台式机',{ 'id': '6','text': '服务器','children': [] } ] },{ 'id': '7','text': '电脑配件','children': [ { 'id': '8','text': 'cpu','parentid': '7',{ 'id': '9','text': '主板',{ 'id': '10','text': '显卡',{ 'id': '11','text': '硬盘',{ 'id': '12','text': '内存',{ 'id': '13','text': '机箱',{ 'id': '14','text': '电源',{ 'id': '15','text': '显示器',{ 'id': '16','text': '刻录机/光驱',{ 'id': '17','text': '声卡',{ 'id': '18','text': '扩展卡','children': [] } ] },{ 'id': '32','text': '手机','children': [ { 'id': '33','text': '诺基亚','parentid': '32','children': [ { 'id': '34','text': '华为','children': [] } ] },{ 'id': '34','text': '三星','text': '小米','text': '苹果','children': [] } ] },'text': '篮球','parentId': '1','children': [] } ];"; protected void Page_Load(object sender,EventArgs e) { treeNode rootNode = new treeNode(); rootNode.id="1"; rootNode.text="电脑整机"; rootNode.parentid="0"; treeNode childNode1 = new treeNode(); childNode1.id="2"; childNode1.text="笔记本"; childNode1.parentid="1"; treeNode childNode2 = new treeNode(); childNode2.id="3"; childNode2.text="SONY"; childNode2.parentid="1"; if (rootNode.children == null) rootNode.children = new List<treeNode>(); rootNode.children.Add(childNode1); rootNode.children.Add(childNode2); string json = JsonConvert.SerializeObject(rootNode,Formatting.Indented); } /// <summary> /// 树结构(根据js插件定义的数据结构) /// </summary> public class treeNode { private string _id; private string _text; private string _parentid; private List<treeNode> _children; public string id { get { return _id; } set { _id = value; } } public string text { get { return _text; } set { _text = value; } } public string parentid { get { return _parentid; } set { _parentid = value; } } public List<treeNode> children { get { return _children; } set { _children = value; } } } }
C#对象转JSON字符串和JSON字符串转对象
C#对象转JSON字符串和JSON字符串转对象
/* 创建者:菜刀居士的博客
* 创建日期: 2014年09月03号
* 功能: Json操作
*
*/
namespace Net.String.ConsoleApplication
{
using System;
using System.Data;
using System.Collections;
using System.ComponentModel;
using System.Collections.Generic;
using System.Web.Script.Serialization;
public class JsonHelper
{
/// <summary>
/// 把json字符串转成对象
/// </summary>
/// <typeparam name="T">对象</typeparam>
/// <param name="data">json字符串</param>
public static T Deserialize<T>(string data)
{
System.Web.Script.Serialization.JavaScriptSerializer json = new System.Web.Script.Serialization.JavaScriptSerializer();
return json.Deserialize<T>(data);
}
/// <summary>
/// 把对象转成json字符串
/// </summary>
/// <param name="o">对象</param>
/// <returns>json字符串</returns>
public static string Serialize(object o)
{
System.Text.StringBuilder sb = new System.Text.StringBuilder();
System.Web.Script.Serialization.JavaScriptSerializer json = new System.Web.Script.Serialization.JavaScriptSerializer();
json.Serialize(o, sb);
return sb.ToString();
}
/// <summary>
/// 把DataTable对象转成json字符串
/// </summary>
public string ToJson(DataTable dt)
{
JavaScriptSerializer javaScriptSerializer = new JavaScriptSerializer();
ArrayList arrayList = new ArrayList();
foreach (DataRow dataRow in dt.Rows)
{
Dictionary<string, object> dictionary = new Dictionary<string, object>();
foreach (DataColumn dataColumn in dt.Columns)
{
dictionary.Add(dataColumn.ColumnName, dataRow[dataColumn.ColumnName]);
}
arrayList.Add(dictionary);
}
return javaScriptSerializer.Serialize(arrayList);
}
}
public static class EnumerableExtension
{
/// <summary>
/// 集合添加一个对象
/// </summary>
public static IEnumerable<T> Add<T>(this IEnumerable<T> e, T value)
{
foreach (var cur in e)
{ yield return cur; }
yield return value;
}
/// <summary>
/// 把集合转成DataTable
/// </summary>
public static DataTable ConvertToDataTable<T>(this IEnumerable<T> enumerable)
{
var dataTable = new DataTable();
foreach (PropertyDescriptor pd in TypeDescriptor.GetProperties(typeof(T)))
{
dataTable.Columns.Add(pd.Name, pd.PropertyType);
}
foreach (T item in enumerable)
{
var Row = dataTable.NewRow();
foreach (PropertyDescriptor dp in TypeDescriptor.GetProperties(typeof(T)))
{
Row[dp.Name] = dp.GetValue(item);
}
dataTable.Rows.Add(Row);
}
return dataTable;
}
}
}
fastjson--Gson生成Json字符串,并且解析Json字符串生成对象
json.jar地址下载 点击打开链接
+++++++++++++++++++++++++++++先看fastjson的使用方法++++++++++++++++++++++++++++++++
Student
package com.example.fastjson; public class Student { private String name; private int age; /** * 默认的构造方法必须要写,不然是无法解析的 */ public Student() { } public Student(String name,int age){ this.name = name; this.age = age; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } @Override public String toString() { return "Student [name=" + name + ",age=" + age + "]"; } }
Grade
package com.example.fastjson; import java.util.ArrayList; import java.util.List; public class Grade { private String gradeName; private List<Student> students = new ArrayList<Student>(); public Grade() { } public Grade(String gradeName) { this.gradeName = gradeName; } public String getGradeName() { return gradeName; } public void setGradeName(String gradeName) { this.gradeName = gradeName; } public List<Student> getStudents() { return students; } public void setStudents(List<Student> students) { this.students = students; } }
MainActivity
package com.example.fastjson; import java.util.ArrayList; import java.util.List; import android.app.Activity; import android.os.Bundle; import android.util.Log; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.TypeReference; import com.alibaba.fastjson.serializer.SimplePropertyPreFilter; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); /** * 1、1输出javaBean的json格式 */ Student student = new Student("dandy",27); String jsonStudent1 = JSON.toJSONString(student); String jsonStudent2 = JSON.toJSONString(student,true); //jsonStudent:{"age":27,"name":"dandy"} Log.i("TAG","jsonStudent1 standard:"+jsonStudent1); Log.i("TAG","jsonStudent2 true:"+jsonStudent2); /** * 1、2输出javaBean的特定属性json格式 * new SimplePropertyPreFilter(实体类.class,"字段一","字段二"); */ SimplePropertyPreFilter filter = new SimplePropertyPreFilter(Student.class,"name"); String jsonStudent = JSON.toJSONString(student,filter); Log.i("TAG","jsonStudent filter:"+jsonStudent); /** * 1、3输出复杂的javaBean(带集合的) */ Grade grade = new Grade("高一"); grade.getStudents().add(new Student("dandy",27)); grade.getStudents().add(new Student("Tabolt",28)); String jsonGrade = JSON.toJSONString(grade); Log.i("TAG","jsonGrade:"+jsonGrade); /** * 2、1Json生成javaBean对象实例 */ String json = JSON.toJSONString(new Student("Tabolt",28)); Student studentBean = JSON.parSEObject(json,Student.class); Log.i("TAG","studentBean:"+studentBean); /** * 2、2Json生成javaBean对象实例 集合 */ List<Student> students = new ArrayList<Student>(); for(int i = 0;i < 5;i++){ Student studentFor = new Student("dandy_"+i,26+i); students.add(studentFor); } String jsonFor = JSON.toJSONString(students); List<Student> stus1 = JSON.parseArray(jsonFor,Student.class); List<Student> stus2 = JSON.parSEObject(jsonFor,new TypeReference<List<Student>>(){}); for(Student stu:stus1){ Log.i("TAG","studentBean:"+stu.toString()); } for(Student stu:stus2){ Log.i("TAG","studentBean:"+stu.toString()); } } }
log输出如下。。。
+++++++++++++++++++++++++++++先看Gson的使用方法++++++++++++++++++++++++++++++++
package com.example.gsondemo; import java.util.ArrayList; import java.util.List; import android.app.Activity; import android.os.Bundle; import android.util.Log; import com.google.gson.Gson; import com.google.gson.reflect.Typetoken; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); /** * 1、1gson解析对象 */ Gson gson = new Gson(); Student student = new Student("dandy",27); String stuStr = gson.toJson(student); Log.i("TAG","str:" + stuStr); /** * 1、2gson解析数组对象 */ Grade grade = new Grade("高一"); grade.getStudents().add(new Student("dandy",27)); grade.getStudents().add(new Student("Tabolt",28)); String str = gson.toJson(grade); Log.i("TAG","str:" + str); /** * * 2、1 gson解析字符串为javaBean对象 */ Student fromJson2Stu = gson.fromJson(stuStr,Student.class); Log.i("TAG","fromJson2Stu-->" + fromJson2Stu.toString()); /** * 2、2gson解析字符串为javaBean对象集合 */ List<Student> students = new ArrayList<Student>(); for (int i = 0; i < 5; i++) { Student studentFor = new Student("dandy_" + i,26 + i); students.add(studentFor); } String jsonFor = gson.toJson(students); List<Student> fromJson2StuArr = gson.fromJson(jsonFor,new Typetoken<List<Student>>() { }.getType()); for (int i = 0; i < fromJson2StuArr.size(); i++) { Student student2 = fromJson2StuArr.get(i); Log.i("TAG","student2-->" + student2.toString()); } } }
fastjson对含有数组的json字符串的转换为json对象
请问我用fastjson怎么转换
String json = "{\"thumb\":\"\",\"photo\":\"[{\"url\":\"/uppath/200711912453162_227.jpg\",\"alt\":\"200711912453162_227\"}]\"}";
这样一组json字符串
今天关于Json.net[v3.5]对对象和JSON字符串的使用和json对象与json字符串的分享就到这里,希望大家有所收获,若想了解更多关于.net 使用 Newtonsoft.Json 输出树状 json字符串、C#对象转JSON字符串和JSON字符串转对象、fastjson--Gson生成Json字符串,并且解析Json字符串生成对象、fastjson对含有数组的json字符串的转换为json对象等相关知识,可以在本站进行查询。
本文标签: