首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

怎么利用Newtonsoft.Json 读取json数据

2013-04-05 
如何利用Newtonsoft.Json 读取json数据网上搜索到的都是下面的方法string jsonText [JSON!,1,true,{p

如何利用Newtonsoft.Json 读取json数据
网上搜索到的都是下面的方法


string jsonText = "['JSON!',1,true,{property:'value'}]";

JsonReader reader = new JsonReader(new StringReader(jsonText));

Console.WriteLine("TokenType\t\tValueType\t\tValue");

while (reader.Read())
{
      Console.WriteLine(reader.TokenType + "\t\t" + WriteValue(reader.ValueType) + "\t\t" + WriteValue(reader.Value))
}

但提示 无法创建抽象类或接口“Newtonsoft.Json.JsonReader”的实例,
我使用的是DotNet20的 Newtonsoft.Json.Net20.dll
[解决办法]
List<Model.AA> AA= (from l in WebUI.NoSqlListObject.CacheDependencyObject.lsAA select l).ToList();
                HttpContext.Current.Response.Write(JsonConvert.SerializeObject(AA));

查出来数据输出,页面上接收  $("#字段ID").val(data.Json里的属性字段);
[解决办法]
JsonConvert.SerializeObject()这个方法就是Newtonsoft.Json的。
[解决办法]

using Newtonsoft.Json.Linq;

JObject jo = JObject.Parse("{"xx":12}");

var str=jo.ToString();

[解决办法]
 public string dt2json(DataTable dt)
    {
        JsonWriter writer = new IndentedJsonWriter();
        JsonObject objJson = new JsonObject();
        JsonArray arrs = new JsonArray();
        JsonObject arrItem;

        for (int i = 0; i < dt.Rows.Count; i++)
        {
            arrItem = new JsonObject();
            for (int j = 0; j < dt.Columns.Count; j++)
            {
                arrItem.Add(dt.Columns[j].ColumnName, dt.Rows[i][j].ToString());
            }
            arrs.Add(arrItem);
        }
        objJson.Add(dt.TableName, arrs);
        objJson.Write(writer);      

        return writer.ToString();
    }
[解决办法]
引用Newtonsoft.Json.dll

[解决办法]

//木有遇到这个问题!
public void ProcessRequest (HttpContext context) {
        context.Response.ContentType = "text/plain";
        string[] name = { "zhangsan", "lisi", "wangwu" };


        System.Collections.Generic.IList<Model> ilist = new System.Collections.Generic.List<Model>();
        for (int i = 0; i < name.Length; i++)
        {
            Model model = new Model();
            model.ID = i + 1;
            model.Name = name[i];
            ilist.Add(model);
        }
        string json = Newtonsoft.Json.JavaScriptConvert.SerializeObject(ilist);
        context.Response.Write(json);
    }
    public class Model
    {
        private int iD;

        public int ID
        {
            get { return iD; }
            set { iD = value; }
        }
        private string name;

        public string Name
        {
            get { return name; }
            set { name = value; }
        }
    }


[解决办法]

//刚没注意看你是反序列化
        StringBuilder sb = new StringBuilder();
        string str = "[{ID:'1',Name:'zhangsan',Other:[{Age:'111'}]}]";
        JavaScriptArray javascript = (JavaScriptArray)JavaScriptConvert.DeserializeObject(str);
        if (javascript.Count > 0)
        {
            JavaScriptObject obj = (JavaScriptObject)javascript[0];
            sb.Append("ID:" + obj["ID"].ToString() + "<br/>");
            sb.Append("Name:" + obj["Name"].ToString() + "<br/>");
            JavaScriptArray json = (JavaScriptArray)obj["Other"];
            if (json.Count > 0)
            {
                JavaScriptObject jsonobj = (JavaScriptObject)json[0];
                sb.Append("Age:" + jsonobj["Age"].ToString());


            }
        }
        Response.Write(sb.ToString());


[解决办法]
添加引用,再用using导入命名空间,最后条用相关转换函数。

热点排行