当前位置: 首页 > news >正文

惠东做网站公司/百度推广按效果付费是多少钱

惠东做网站公司,百度推广按效果付费是多少钱,wordpress未收到数据,网站怎么做镜像JSON(全称为JavaScript Object Notation) 是一种轻量级的数据交换格式。它是基于JavaScript语法标准的一个子集。 JSON采用完全独立于语言的文本格式,可以很容易在各种网络、平台和程序之间传输。JSON的语法很简单,易于人阅读和编写,同时也易…

JSON(全称为JavaScript Object Notation) 是一种轻量级的数据交换格式。它是基于JavaScript语法标准的一个子集。 JSON采用完全独立于语言的文本格式,可以很容易在各种网络、平台和程序之间传输。JSON的语法很简单,易于人阅读和编写,同时也易于机器解析和生成。

JSON与XML的比较
◆可读性
  JSON和XML的可读性相比较而言,由于XML提供辅助的标签,更加适合人阅读和理解。
◆文件大小与传输
  XML允许使用方便的标签,所以文件尺寸是要比JSON大的。而且JSON源于Javascript,所以天生的主战场是Javascript与网络,在这里,JSON有着XML无法赶超的优势。

JSON语法
1. JSON 语法是 JavaScript 对象表示法语法的子集。

  • 数据在名称/值对中:名称是字符串,使用双引号表示。值可以是:数字(整数或浮点数),字符串(在双引号中),数组(在方括号中),对象(在花括号中),true/false/null。
  • 数据由逗号分隔:
  • 花括号保存对象:对象可以包含各种数据,包括数组。
  • 方括号保存数组:数字可以包含对象。

例如:

复制代码
{"employees": [{"firstName": "Bill","lastName": "Gates"},{"firstName": "George","lastName": "Bush"}]
}
复制代码

2. 如果JSON中含有转义字符,则需要转义。例如文件路径中需要使用"\\"而不是"\"。例如:{ "file":"C:\\a.txt"}。

 

.NET操作JSON
  JSON文件读入到内存中就是字符串,.NET操作JSON就是生成与解析JSON字符串。操作JSON通常有以下几种方式:
1. 原始方式:自己按照JSON的语法格式,写代码直接操作JSON字符串。如非必要,应该很少人会走这条路,从头再来的。

2. 通用方式【★★★★★】

这种方式是使用开源的类库Newtonsoft.Json(下载地址http://json.codeplex.com/)。下载后加入工程就能用。通常可以使用JObject, JsonReader, JsonWriter处理。这种方式最通用,也最灵活,可以随时修改不爽的地方。
(1)使用JsonReader读Json字符串:

复制代码
string jsonText = @"{""input"" : ""value"", ""output"" : ""result""}";
JsonReader reader = new JsonTextReader(new StringReader(jsonText));while (reader.Read())
{Console.WriteLine(reader.TokenType + "\t\t" + reader.ValueType + "\t\t" + reader.Value);
}
复制代码

(2)使用JsonWriter写字符串:

复制代码
StringWriter sw = new StringWriter();
JsonWriter writer = new JsonTextWriter(sw);writer.WriteStartObject();
writer.WritePropertyName("input");
writer.WriteValue("value");
writer.WritePropertyName("output");
writer.WriteValue("result");
writer.WriteEndObject();
writer.Flush();string jsonText = sw.GetStringBuilder().ToString();
Console.WriteLine(jsonText);
复制代码

(3)使用JObject读写字符串:

JObject jo = JObject.Parse(jsonText);
string[] values = jo.Properties().Select(item => item.Value.ToString()).ToArray();

 (4)使用JsonSerializer读写对象(基于JsonWriter与JsonReader): 

数组型数据

复制代码
string jsonArrayText1 = "[{'a':'a1','b':'b1'},{'a':'a2','b':'b2'}]";
JArray ja = (JArray)JsonConvert.DeserializeObject(jsonArrayText1);
string ja1a = ja[1]["a"].ToString();
//或者
JObject o = (JObject)ja[1];
string oa = o["a"].ToString();
复制代码

嵌套格式

string jsonText = "{\"beijing\":{\"zone\":\"海淀\",\"zone_en\":\"haidian\"}}";
JObject jo = (JObject)JsonConvert.DeserializeObject(jsonText);
string zone = jo["beijing"]["zone"].ToString();
string zone_en = jo["beijing"]["zone_en"].ToString();

自定义类Project

复制代码
Project p = new Project() { Input = "stone", Output = "gold" };
JsonSerializer serializer = new JsonSerializer();
StringWriter sw = new StringWriter();
serializer.Serialize(new JsonTextWriter(sw), p);
Console.WriteLine(sw.GetStringBuilder().ToString());StringReader sr = new StringReader(@"{""Input"":""stone"", ""Output"":""gold""}");
Project p1 = (Project)serializer.Deserialize(new JsonTextReader(sr), typeof(Project));
Console.WriteLine(p1.Input + "=>" + p1.Output);
复制代码

上面的代码都是基于下面这个Project类定义:

class Project
{public string Input { get; set; }public string Output { get; set; }
}

 此外,如果上面的JsonTextReader等类编译不过的话,说明是我们自己修改过的类,换成你们自己的相关类就可以了,不影响使用。

3. 内置方式:使用.NET Framework 3.5/4.0中提供的System.Web.Script.Serialization命名空间下的JavaScriptSerializer类进行对象的序列化与反序列化,很直接。

复制代码
Project p = new Project() { Input = "stone", Output = "gold" };JavaScriptSerializer serializer = new JavaScriptSerializer();var json = serializer.Serialize(p);Console.WriteLine(json);var p1 = serializer.Deserialize<Project>(json);Console.WriteLine(p1.Input + "=>" + p1.Output);Console.WriteLine(ReferenceEquals(p,p1));
复制代码

注意:如果使用的是VS2010,则要求当前的工程的Target Framework要改成.Net Framework 4,不能使用Client Profile。当然这个System.Web.Extensions.dll主要是Web使用的,直接在Console工程中用感觉有点浪费资源。
  此外,从最后一句也可以看到,序列化与反序列化是深拷贝的一种典型的实现方式

4. 契约方式:使用System.Runtime.Serialization.dll提供的DataContractJsonSerializer或者 JsonReaderWriterFactory实现。

复制代码
Project p = new Project() { Input = "stone", Output = "gold" };
DataContractJsonSerializer serializer = new DataContractJsonSerializer(p.GetType());
string jsonText;using (MemoryStream stream = new MemoryStream())
{serializer.WriteObject(stream, p);jsonText = Encoding.UTF8.GetString(stream.ToArray());Console.WriteLine(jsonText);
}using (MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(jsonText)))
{DataContractJsonSerializer serializer1 = new DataContractJsonSerializer(typeof(Project));Project p1 = (Project)serializer1.ReadObject(ms);Console.WriteLine(p1.Input + "=>" + p1.Output);
}
复制代码

这里要注意,这里的Project类和成员要加相关的Attribute:

复制代码
[DataContract]
class Project
{[DataMember]public string Input { get; set; }[DataMember]public string Output { get; set; }
}
复制代码

实用参考:

JSON验证工具:http://jsonlint.com/
JSON简明教程:http://www.w3school.com.cn/json/
Newtonsoft.Json类库下载:http://json.codeplex.com/

转载于:https://www.cnblogs.com/zxtceq/p/8310100.html

http://www.lbrq.cn/news/791155.html

相关文章:

  • mac做网站的软件/软文广告经典案例分析
  • 软件工程师有前途吗/seo推广优化平台
  • 如何建设一个工业品采购网站/荆州seo推广
  • 做网站vi系统是什么/有创意的网络广告案例
  • wordpress登陆可见设置/关键词优化是怎样收费的
  • 开源低代码开发平台/锦州seo推广
  • 做最好的win7系统下载网站/搜索引擎优化理解
  • 中山网站推广外包/网络营销专业就业公司
  • 400元网站建设/优化快速排名公司
  • 杭州网站制作维护/seo网页推广
  • 台州企业网站制作公司/长沙网站seo服务
  • 企业网站建设和实现 论文/yandx引擎入口
  • 申请网站平台怎么做/数据分析
  • 深圳大浪网站建设/新闻最近的大事10件
  • vs2015做的网站/百度推广官网入口
  • 公司网站更新/名优网站关键词优化
  • 美妆网站怎么做/武汉网站推广很 棒
  • 网站建设优化服务公司/整站优化系统厂家
  • 西安比较好的网络公司/惠州seo网络推广
  • 做网站怎么那么难/如何利用互联网进行宣传推广
  • 大学学校类网站设计/seo专业技术培训
  • 鹤壁建设网站推广公司/手机百度高级搜索
  • 昆山网站建设秦皇岛/seo和sem推广
  • 网站建设公司 倒闭/万能搜索 引擎
  • 网站建设成本 网站空间/全国最新疫情最新消息
  • 重庆网上商城网站建设公司/2023年10月疫情还会严重吗
  • 为什么做网站备案的人态度差/近三天时政热点
  • 上海高品质网站建设/搜索引擎排名优化价格
  • 外贸网站建设哪家公司比较好/广西壮族自治区在线seo关键词排名优化
  • 网站建设选择题题库/武汉抖音seo搜索
  • Solidity智能合约开发全攻略
  • 动态置信度调优实战:YOLOv11多目标追踪精度跃迁方案(附完整代码)
  • 更换KR100门禁读头&主机
  • 【领域热点】【Vue】Vue 与 WebAssembly:前端性能优化的黄金搭档
  • Docker 镜像打包为 ZIP 文件便于分享和转发
  • LRU缓存淘汰算法的详细介绍与具体实现