读书人

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

发布时间: 2013-04-05 10:24:33 作者: rapoo

如何利用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导入命名空间,最后条用相关转换函数。

读书人网 >asp.net

热点推荐