C#使用DataContractJsonSerializer来进行JSON解析

2023-05-16

在使用DataContractJsonSerializer进行解析之前,我们首先需要将两个包引入进来:

using System.Runtime.Serialization;
using System.Runtime.Serialization.Json;

接下来需要新建一个class,DataContractJsonSerializer可以将JSON字符串转化为指定的class或者将class转化为JSON字符串。

这次我接受的JSON数据格式为:

{ "ret": "0", "Isupdate": "1", "Newver": "V1.1.0" }

我们新建的class也要遵照上述格式,代码如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Runtime.Serialization;
 
namespace AutoUpdater_Client.Model
{
    //从更新服务器返回的更新信息
    [DataContract]
    class UpdateInfoJSON
    {
        //"{ \"ret\": \"0\", \"Isupdate\": \"1\", \"Newver\": \"V1.1.0\" }";
        //返回值,为0表示获取信息成功
        [DataMember(Order = 0)]
        public int ret { get; set; }
        //是否需要更新,0表示不需要,1表示需要
        [DataMember(Order = 1)]
        public int Isupdate { get; set; }
        //最新版本号
        [DataMember(Order = 2)]
        public string Newver { get; set; }
 
    }
}
请注意上述class中的DataContract和DataMember这两个属性,因为DataContractJsonSerializer在进行序列化的时候需要他们,所以一定要记得加上。
另外,这两个属性的使用也需要引入

System.Runtime.Serialization

接下来我们可以来写解析的代码了:

string result = "{ \"ret\": \"0\", \"Isupdate\": \"1\", \"Newver\": \"V1.1.0\" }";
//解析从服务端返回的JSON结果
var mStream = new MemoryStream(Encoding.Default.GetBytes(result));
var serializer = new DataContractJsonSerializer(typeof(UpdateInfoJSON));
UpdateInfoJSON updateInfo = (UpdateInfoJSON)serializer.ReadObject(mStream);
接下来就可以访问updateInfo中的各个属性了,完成。
————————————————

//*************JSON-DataContractJsonSerializer解析

C#中使用JSON不需要使用第三方库,使用.NET Framwork3.5自带的System.Runtime.Serialization.Json即可很好的完成JSON的解析。

关于JSON的入门介绍见(首页的图很形象):

http://www.json.org/

一、Using

需要添加引用:System.ServiceModel.Web 和 System.Runtime.Serialization,然后使用Using:

using System.Runtime.Serialization.Json;
using System.Runtime.Serialization;

 二、定义序列化的类

假如我们要转化的JSON字符串格式为:

复制代码

{
    "encoding":"UTF-8",
    "plug-ins":["python","c++","ruby"],
    "indent":{
        "length":3,
        "use_space":true
    }
}

复制代码

 

然后编写相应的序列化的类,注意下面类加的Attribute:

[DataContract(Namespace = "http://coderzh.cnblogs.com")]
class Config
{
    [DataMember(Order = 0)]
    public string encoding { get; set; }
    [DataMember(Order = 1)]
    public string[] plugins { get; set; }
    [DataMember(Order = 2)]
    public Indent indent { get; set; }
}

[DataContract(Namespace = "http://coderzh.cnblogs.com")]
class Indent
{
    [DataMember(Order = 0)]
    public int length { get; set; }
    [DataMember(Order = 1)]
    public bool use_space { get; set; }
}

三、对象转化为JSON字符串

 

使用WriteObject方法:


var config = new Config(){
                         encoding = "UTF-8",
                         plugins = new string[]{"python", "C++", "C#"},
                         indent = new Indent(){ length = 4, use_space = false}
                         };
var serializer = new DataContractJsonSerializer(typeof(Config));
var stream = new MemoryStream();
serializer.WriteObject(stream, config);

byte[] dataBytes = new byte[stream.Length];

stream.Position = 0;

stream.Read(dataBytes, 0, (int)stream.Length);

string dataString = Encoding.UTF8.GetString(dataBytes);

Console.WriteLine("JSON string is:");
Console.WriteLine(dataString);

四、JSON字符串转对象

使用ReadObject方法:

ReadObject

 五、输出结果:

复制代码

JSON string is:
{"encoding":"UTF-8","plugins":["python","C++","C#"],"indent":{"length":4,"use_space":false}}
Encoding is: UTF-8
plugins is: python
plugins is: C++
plugins is: C#
indent.length is: 4
indent.use_space is: False

复制代码

 

//***********使用List和Json格式相互转化的总结

如Json格式[{"id":"1","name":"sara"},{"id":"2","name":"sara2"}]

自定义数据类型,用于List<>:


 [DataContract]
    class Person {
        [DataMember]
        public int id;
        [DataMember]
        public string name;
    }  

 

程序中使用:

首先加入引用:

using System.Runtime.Serialization.Json;
using System.Runtime.Serialization;
using System.Text;

代码内容:


class Program
    {
        static void Main(string[] args)
        {
            //Product.GetAllSmartPhones();
            List<Person> nums = new List<Person>();
            nums.Add(new Person() { 
                id=1,
                name="sara"
            });
            nums.Add(new Person() { 
                id=1,
                name="sylar"
            });

            DataContractJsonSerializer json = new DataContractJsonSerializer(nums.GetType());

            string szJson = "";

            //序列化

            using (MemoryStream stream = new MemoryStream())
            {

                json.WriteObject(stream, nums);

                szJson = Encoding.UTF8.GetString(stream.ToArray());

            }
            Console.WriteLine(szJson);
            Console.ReadLine();
        }
    }  

工程化时,可以对自定义数据结构重新定义一个类:

如:

public class TestListResult<T> : List<T>
    {
        public TestListResult()
        {
            this.Successed = false;
            this.Message = "";
        }
        public bool Successed { get; set; }
        public string Message { get; set; }
    }

使用时同上在一个文件里一样

理解了以上原理,可以使用以下函数在项目中使用:

List<T>转Json

 

[html] view plaincopy在CODE上查看代码片派生到我的代码片

  1. public static string Obj2Json<T>(T data)  
  2. {  
  3.     try  
  4.     {  
  5.         System.Runtime.Serialization.Json.DataContractJsonSerializer serializer = new System.Runtime.Serialization.Json.DataContractJsonSerializer(data.GetType());  
  6.         using (MemoryStream ms = new MemoryStream())  
  7.         {  
  8.             serializer.WriteObject(ms, data);  
  9.             return Encoding.UTF8.GetString(ms.ToArray());  
  10.         }  
  11.     }  
  12.     catch  
  13.     {  
  14.         return null;  
  15.     }  
  16. }  


Json转List<T>

 

[html] view plaincopy在CODE上查看代码片派生到我的代码片

  1. public static Object Json2Obj(String json,Type t)  
  2. {  
  3.     try  
  4.     {  
  5.         System.Runtime.Serialization.Json.DataContractJsonSerializer serializer = new System.Runtime.Serialization.Json.DataContractJsonSerializer(t);  
  6.         using (MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(json)))  
  7.         {  
  8.               
  9.             return  serializer.ReadObject(ms);  
  10.         }  
  11.     }  
  12.     catch  
  13.     {  
  14.         return null;  
  15.     }  
  16. }  


DataTable 转Json

 

[html] view plaincopy在CODE上查看代码片派生到我的代码片

  1. public static string DataTable2Json(DataTable dt)  
  2. {  
  3.     if (dt.Rows.Count == 0)  
  4.     {  
  5.         return "";  
  6.     }  
  7.    
  8.     StringBuilder jsonBuilder = new StringBuilder();  
  9.     // jsonBuilder.Append("{");   
  10.     //jsonBuilder.Append(dt.TableName.ToString());    
  11.     jsonBuilder.Append("[");//转换成多个model的形式  
  12.     for (int i = 0; i < dt.Rows.Count; i++)  
  13.     {  
  14.         jsonBuilder.Append("{");  
  15.         for (int j = 0; j < dt.Columns.Count; j++)  
  16.         {  
  17.             jsonBuilder.Append("\"");  
  18.             jsonBuilder.Append(dt.Columns[j].ColumnName);  
  19.             jsonBuilder.Append("\":\"");  
  20.             jsonBuilder.Append(dt.Rows[i][j].ToString());  
  21.             jsonBuilder.Append("\",");  
  22.         }  
  23.         jsonBuilder.Remove(jsonBuilder.Length - 1, 1);  
  24.         jsonBuilder.Append("},");  
  25.     }  
  26.     jsonBuilder.Remove(jsonBuilder.Length - 1, 1);  
  27.     jsonBuilder.Append("]");  
  28.     //  jsonBuilder.Append("}");  
  29.     return jsonBuilder.ToString();  
  30. }  


单个对象转JSON

 

[html] view plaincopy在CODE上查看代码片派生到我的代码片

  1. public static T Json2Obj<T>(string json)   
  2. {  
  3.     T obj = Activator.CreateInstance<T>();  
  4.     using (System.IO.MemoryStream ms = new System.IO.MemoryStream(System.Text.Encoding.UTF8.GetBytes(json)))  
  5.     {  
  6.         System.Runtime.Serialization.Json.DataContractJsonSerializer serializer = new System.Runtime.Serialization.Json.DataContractJsonSerializer(obj.GetType());  
  7.         return (T)serializer.ReadObject(ms);  
  8.     }  
  9. }  


将函数封装成类,更便于项目中引用:

 

[html] view plaincopy在CODE上查看代码片派生到我的代码片

  1. public class JsonHelper  
  2.    {  
  3.        /// <summary>  
  4.        /// 生成Json格式  
  5.        /// </summary>  
  6.        /// <typeparam name="T"></typeparam>  
  7.        /// <param name="obj"></param>  
  8.        /// <returns></returns>  
  9.        public static string GetJson<T>(T obj)  
  10.        {  
  11.            DataContractJsonSerializer json = new DataContractJsonSerializer(obj.GetType());  
  12.            using (MemoryStream stream = new MemoryStream())  
  13.            {  
  14.                json.WriteObject(stream, obj);  
  15.                string szJson = Encoding.UTF8.GetString(stream.ToArray());   
  16.                return szJson;  
  17.            }  
  18.        }  
  19.        /// <summary>  
  20.        /// 获取Json的Model  
  21.        /// </summary>  
  22.        /// <typeparam name="T"></typeparam>  
  23.        /// <param name="szJson"></param>  
  24.        /// <returns></returns>  
  25.        public static T ParseFromJson<T>(string szJson)  
  26.        {  
  27.            T obj = Activator.CreateInstance<T>();  
  28.            using (MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(szJson)))  
  29.            {  
  30.                DataContractJsonSerializer serializer = new DataContractJsonSerializer(obj.GetType());  
  31.                return (T)serializer.ReadObject(ms);  
  32.            }  
  33.        }  
  34.    }  

[html] view plaincopy在CODE上查看代码片派生到我的代码片

  1. /// <summary>  
  2.        /// 反回JSON数据到前台  
  3.        /// </summary>  
  4.        /// <param name="dt">数据表</param>  
  5.        /// <returns>JSON字符串</returns>  
  6.        public string DataTableToJson(DataTable dt)  
  7.        {  
  8.            StringBuilder JsonString = new StringBuilder();  
  9.            if (dt != null && dt.Rows.Count > 0)  
  10.            {  
  11.                JsonString.Append("{ ");  
  12.                JsonString.Append("\"TableInfo\":[ ");  
  13.                for (int i = 0; i < dt.Rows.Count; i++)  
  14.                {  
  15.                    JsonString.Append("{ ");  
  16.                    for (int j = 0; j < dt.Columns.Count; j++)  
  17.                    {  
  18.                        if (j < dt.Columns.Count - 1)  
  19.                        {  
  20.                            JsonString.Append("\"" + dt.Columns[j].ColumnName.ToString() + "\":" + "\"" + dt.Rows[i][j].ToString() + "\",");  
  21.                        }  
  22.                        else if (j == dt.Columns.Count - 1)  
  23.                        {  
  24.                            JsonString.Append("\"" + dt.Columns[j].ColumnName.ToString() + "\":" + "\"" + dt.Rows[i][j].ToString() + "\"");  
  25.                        }  
  26.                    }  
  27.                    if (i == dt.Rows.Count - 1)  
  28.                    {  
  29.                        JsonString.Append("} ");  
  30.                    }  
  31.                    else  
  32.                    {  
  33.                        JsonString.Append("}, ");  
  34.                    }  
  35.                }  
  36.                JsonString.Append("]}");  
  37.                return JsonString.ToString();  
  38.            }  
  39.            else  
  40.            {  
  41.                return null;  
  42.            }  
  43.        }  


表的转化Json类:

[html] view plaincopy在CODE上查看代码片派生到我的代码片

  1. public static class JsonTableHelper  
  2.     {  
  3.         /// <summary>   
  4.         /// 返回对象序列化   
  5.         /// </summary>   
  6.         /// <param name="obj">源对象</param>   
  7.         /// <returns>json数据</returns>   
  8.         public static string ToJson(this object obj)  
  9.         {  
  10.             JavaScriptSerializer serialize = new JavaScriptSerializer();  
  11.             return serialize.Serialize(obj);  
  12.         }  
  13.   
  14.         /// <summary>   
  15.         /// 控制深度   
  16.         /// </summary>   
  17.         /// <param name="obj">源对象</param>   
  18.         /// <param name="recursionDepth">深度</param>   
  19.         /// <returns>json数据</returns>   
  20.         public static string ToJson(this object obj, int recursionDepth)  
  21.         {  
  22.             JavaScriptSerializer serialize = new JavaScriptSerializer();  
  23.             serialize.RecursionLimit = recursionDepth;  
  24.             return serialize.Serialize(obj);  
  25.         }  
  26.   
  27.         /// <summary>   
  28.         /// DataTable转为json   
  29.         /// </summary>   
  30.         /// <param name="dt">DataTable</param>   
  31.         /// <returns>json数据</returns>   
  32.         public static string ToJson(DataTable dt)  
  33.         {  
  34.             Dictionary<string, object> dic = new Dictionary<string, object>();  
  35.   
  36.             int index = 0;  
  37.             foreach (DataRow dr in dt.Rows)  
  38.             {  
  39.                 Dictionary<string, object> result = new Dictionary<string, object>();  
  40.   
  41.                 foreach (DataColumn dc in dt.Columns)  
  42.                 {  
  43.                     result.Add(dc.ColumnName, dr[dc].ToString());  
  44.                 }  
  45.                 dic.Add(index.ToString(), result);  
  46.                 index++;  
  47.             }  
  48.             return ToJson(dic);  
  49.         }  
  50.     }  


在Asp.net中前后台Json数据的传递

一、前台产生Json数据传递给后台处理

前台生成Json数据要使用javascript和json.js。

json.js 下载地址:http://www.json.org/json.js

 

 

前台代码:

 

[html] view plaincopy在CODE上查看代码片派生到我的代码片

  1. var people = [{ "UserName": "t1", "PassWord": "111111", "Sex": "男" },{ "UserName": "t2", "PassWord": "222222", "Sex": "女" }];  
  2. var url = "Default.aspx?people=" + escape(people.toJSONString());  
  3. request.open("POST", url, true);  
  4. request.onreadystatechange = updatePage;  
  5. request.send(null);  


后台处理代码:

同上面的转化原理一样,我们先建立一个json数据类,便于List<>中使用。

 

[html] view plaincopy在CODE上查看代码片派生到我的代码片

  1. [DataContract]//序列化  
  2. public class TestObj  
  3. {  
  4.     [DataMember]  
  5.     public string UserName { get; set; }  
  6.      [DataMember]  
  7.     public string PassWord { get; set; }  
  8.      [DataMember]  
  9.     public string Sex { get; set; }  
  10.   
  11.   
  12. public TestObj(string u,string p,string s)  
  13.     {  
  14.         UserName = u;  
  15.         PassWord = p;  
  16.         Sex = s;  
  17.     }  
  18. }  


对前台提交的Json数据相互转化函数

 

[html] view plaincopy在CODE上查看代码片派生到我的代码片

  1. //json 序列化  
  2.   
  3.     public static string ToJsJson(object item)  
  4.     {  
  5.         DataContractJsonSerializer serializer = new DataContractJsonSerializer(item.GetType());  
  6.         using(MemoryStream ms=new MemoryStream())  
  7.         {  
  8.             serializer.WriteObject(ms, item);  
  9.             StringBuilder sb = new StringBuilder();  
  10.             sb.Append(Encoding.UTF8.GetString(ms.ToArray()));  
  11.             return sb.ToString();  
  12.         }  
  13.     }  
  14.   
  15.     //反序列化  
  16.   
  17.     public static T FromJsonTo<T>(string jsonString)  
  18.     {  
  19.         DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(T));  
  20.         using (MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(jsonString)))  
  21.         {  
  22.             T jsonObject = (T)ser.ReadObject(ms);  
  23.             return jsonObject;  
  24.         }  
  25.     }  


在后台代码中调用以上函数进行对数据people的处理:

 

[html] view plaincopy在CODE上查看代码片派生到我的代码片

  1. //获取json字符串  
  2.        string jsonStr = Request["people"];  
  3.        List<TestObj> obj = Json.FromJsonTo<List<TestObj>>(jsonStr);  
  4.        foreach (TestObj item in obj)  
  5.            {  
  6.         Response.Write(string.Format("UserName:{0},Password:{1},Sex:{2}/r/n", item.UserName, item.PassWord, item.Sex));  
  7.            }  
  8.        Response.End();  


最终的结果:

 

[html] view plaincopy在CODE上查看代码片派生到我的代码片

  1. List<TestObj> Users = new List<TestObj>();  
  2. Users.Add(new TestObj("t1", "1", "男"));  
  3. Users.Add(new TestObj("t2", "2", "女"));  
  4. string json = Json.ToJsJson(Users);  
  5. Response.Write(json);  
  6. Response.End();  


二、前台获取后台提交的Json数据

后台产生Json数据的方法如上原理中提到的:

 

[html] view plaincopy在CODE上查看代码片派生到我的代码片

  1. string Json;  
  2.       DataContractJsonSerializer json = new DataContractJsonSerializer(list.GetType());  
  3.                using (MemoryStream stream = new MemoryStream())  
  4.                {  
  5.                    json.WriteObject(stream, list);  
  6.                     Json = Encoding.UTF8.GetString(stream.ToArray());  
  7.                      
  8.                }  
  9.        return Json;     

[html] view plaincopy在CODE上查看代码片派生到我的代码片

  1. /// <summary>  
  2.   /// Json的数据结构  
  3.   /// </summary>  
  4.   [DataContract]  
  5.   class ResultJson  
  6.   {  
  7.       [DataMember]  
  8.       public bool Result;  
  9.       [DataMember]  
  10.       public int Count;  
  11.       [DataMember]  
  12.       public string Message;  
  13.   }  


前台获取后台返回的Json字符串:
 

 

[html] view plaincopy在CODE上查看代码片派生到我的代码片

  1. function updatePage() {  
  2.           if (request.readyState == 4) {  
  3.               if (request.status == 200) {  
  4.                   var response = request.responseText;  
  5.                   //转化成对象  
  6.                   //方法1  
  7.                       response = response.parseJSON();  
  8.                   //方法2  
  9.                   // response = eval("(" + response + ")");  
  10.                   //对象访问方式  
  11.                   document.getElementById("d1").innerHTML = response[1].Sex;  
  12.                   //直接输出  
  13.                  // document.getElementById("d1").innerHTML = response;  
  14.               }  
  15.           }  
  16.       }  


复杂的Json字符串操作方法:

假如我们要转化的JSON字符串格式为:

 

[html] view plaincopy在CODE上查看代码片派生到我的代码片

  1. {  
  2.     "encoding":"UTF-8",  
  3.     "plug-ins":["python","c++","ruby"],  
  4.     "indent":{  
  5.         "length":3,  
  6.         "use_space":true  
  7.     }  
  8. }  

然后编写相应的序列化的类,注意下面Indent类加的属性:

[html] view plaincopy在CODE上查看代码片派生到我的代码片

  1. [DataContract]  
  2. class Config  
  3. {  
  4.     [DataMember(Order = 0)]  
  5.     public string encoding { get; set; }  
  6.     [DataMember(Order = 1)]  
  7.     public string[] plugins { get; set; }  
  8.     [DataMember(Order = 2)]  
  9.     public Indent indent { get; set; }  
  10. }  
  11.   
  12. [DataContract]  
  13. class Indent  
  14. {  
  15.     [DataMember(Order = 0)]  
  16.     public int length { get; set; }  
  17.     [DataMember(Order = 1)]  
  18.     public bool use_space { get; set; }  
  19. }  

 

输出JSON字符串

 

[html] view plaincopy在CODE上查看代码片派生到我的代码片

  1. var config = new Config(){  
  2.                          encoding = "UTF-8",  
  3.                          plugins = new string[]{"python", "C++", "C#"},  
  4.                          indent = new Indent(){ length = 4, use_space = false}  
  5.                          };  
  6. var serializer = new DataContractJsonSerializer(typeof(Config));  
  7. var stream = new MemoryStream();  
  8. serializer.WriteObject(stream, config);  
  9.   
  10. byte[] dataBytes = new byte[stream.Length];  
  11.   
  12. stream.Position = 0;  
  13.   
  14. stream.Read(dataBytes, 0, (int)stream.Length);  
  15.   
  16. string dataString = Encoding.UTF8.GetString(dataBytes);  
  17.   
  18. Console.WriteLine("JSON string is:");  
  19. Console.WriteLine(dataString);  

结果:

[html] view plaincopy在CODE上查看代码片派生到我的代码片

  1. JSON string is:  
  2. {"encoding":"UTF-8","plugins":["python","C++","C#"],"indent":{"length":4,"use_space":false}}  


读取Json字符串内容:

 

[html] view plaincopy在CODE上查看代码片派生到我的代码片

  1. var mStream = new MemoryStream(Encoding.Default.GetBytes(dataString));  
  2. Config readConfig = (Config)serializer.ReadObject(mStream);  
  3.   
  4. Console.WriteLine("Encoding is: {0}", readConfig.encoding);  
  5. foreach (string plugin in readConfig.plugins)  
  6. {  
  7.     Console.WriteLine("plugins is: {0}", plugin);  
  8. }  
  9. Console.WriteLine("indent.length is: {0}", readConfig.indent.length);  
  10. Console.WriteLine("indent.use_space is: {0}", readConfig.indent.use_space);  

结果:

[html] view plaincopy在CODE上查看代码片派生到我的代码片

  1. Encoding is: UTF-8  
  2. plugins is: python  
  3. plugins is: C++  
  4. plugins is: C#  
  5. indent.length is: 4  
  6. indent.use_space is: False  
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C#使用DataContractJsonSerializer来进行JSON解析 的相关文章

  • 无法使用 Alamofire 在 swift 3 中上传图像

    我在尝试让 Alamofire 上传图像时被困了三天 这个想法是 Alamofire 将其与一些 php 代码一起发送到服务器 经过大量尝试和查看不同的地方后 一些代码应该可以工作 但是 Alamofire 的服务器端文档很糟糕 最近对 s
  • JSON.NET JsonConvert 与 .NET JavaScriptSerializer [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 在 NET 中对 JSON 进行编码和解码时 使用什么更好 我已经尝试过这两种方法 到目前为止 JsonConvert 似乎做得很好 我过去曾成
  • Javascript:类型错误:循环对象值

    我正在尝试对 javascript 对象进行字符串化 但是当我这样做时会出现以下错误 类型错误 循环对象值 我不相信我的代码包含任何循环引用 对象内部未引用 newServiceObject 因此我不明白为什么会收到此消息 我想将包含两个属
  • 在 Ruby/Sinatra 中解码 Facebook 的签名请求

    由于 Facebook 不赞成使用新的 FBML 我正在寻找一种新方法来创建 显示 选项卡 向粉丝显示一个版本 向非粉丝显示另一个版本的页面选项卡 Facebook 已将数据添加到signed request 中 当用户在应用程序中选择您的
  • 在Python中将SQL转换为json[重复]

    这个问题在这里已经有答案了 我需要传递一个可以使用它进行转换的对象 parseJSON 查询如下所示 cursor execute SELECT earnings date FROM table 为了传递可以转换为 json 的 HttpR
  • JQuery - 使用 JSON 的属性创建输入

    我正在尝试使用 JSON 设置的 id 和 value 属性创建一个输入 我有一个获取 JSON 的 ajax 调用 返回的数据很好 对于 JSON 中的每个对象 我想创建一个带有 ID 和 JSON 值的按钮 阿贾克斯调用 ajax ty
  • HttpHostConnectException:连接被拒绝 Android

    我正在尝试通过 HttpPost 连接并将用户名和密码发送到网站 然后从该网站接收字符串 我过去尝试过各种对我有用的方法 但现在当我发送用户名和密码标识符时 应用程序超时长达 4 分钟 然后抛出以下异常 07 16 16 32 32 897
  • 如何使用 RSpec 检查 JSON 响应?

    我的控制器中有以下代码 format json render json gt flashcard gt flashcard lesson gt lesson success gt true 在我的 RSpec 控制器测试中 我想验证特定场景
  • 如何使用 PhpUnit 测试在 POST 方法中传递 JSON?

    我正在使用 symfony 3 0 和 phpUnit 框架 3 7 18 单元测试文件 abcControllerTest php namespace AbcBundle Tests Controller use Symfony Comp
  • WebSocket如何压缩消息?

    JSON stringify 显然空间利用率不高 例如 123456789 123456789 占用 20 多个字节 而它可能只需要大约 5 个字节 websocket 在发送到流之前是否会压缩其 JSON WebSocket 的核心只是一
  • Python for 循环仅返回字典的最后一个值

    我正在尝试在 python 中创建一个带有 xyz 坐标的 json 转储 但是我用来遍历不同组的 for 循环仅返回最后一个组 self group strings CHIN L EYE BROW R EYE BROW L EYE R E
  • 在 JavaScript 中按属性过滤 JSON 数据

    我有一个 JSON 序列化集合 id person1 date 7 20 2014 17 20 09 listed name Tom name Tom contact info email protected cdn cgi l email
  • 使用 JQuery 定义要附加的 HTML 模板

    我有一个正在循环的数组 每次条件成立时 我想附加一份副本HTML下面的代码到具有一些值的容器元素 我可以在哪里放置此 HTML 以以智能方式重复使用 a href class list group item div class image
  • JSON 为 foreach() 提供的参数无效

    我在从 JSON 检索数据时遇到一些问题 它总是说为 foreach 提供的参数无效 这是 url php 中的 JSON nama IT SERVICE SOLUTION nilai 0 periode 11 tahun 2014 nam
  • 如何在phonegap应用程序中使用存储在localStorage中的json feed?

    这就是我正在做的 向我的网络服务器发出请求 响应采用 json 格式 使用 jquery 模板在我的应用程序中呈现回调数据 非常简单 就像魅力一样 问题是 我想在本地存储一些数据 这样我的应用程序就不必每次都从服务器获取它 3g 很慢 每笔
  • 编码的 nsdata utf8 json,在 ios 中带有重音字符

    我向网络服务器发出一个发布请求 该服务器用 JSON 回答我 这是响应的标头 Cache Control private Content Length 826 Content Type application json charset ut
  • 如何修复“没有这样的文件或目录,lstat 'scss/'”?

    我正在尝试遵循 youtube 上的简单教程他尝试使用终端运行 npm 脚本 sass 文件 当我执行命令时npm 运行 sass显示错误消息错误 ENOENT 没有这样的文件或目录 lstat scss 我认为问题在于文件的路径或文件的权
  • 如何将 Laravel 5.4 与 Angular 4 集成

    我知道如何创造完整的拉拉维尔 5 4自己的项目 我也知道如何使用创建 SPA角4 Problem 我不知道如何将 Laravel 与 Angular 集成 另外 我想使用 Laravel 5 4 作为后端 使用 Angular 4 作为前端
  • PHP 数组通过 JSON 转为 jquery 数组

    我有点困惑为什么以下不起作用 get php
  • react-native - 图像需要来自 JSON 的本地路径

    你好社区 我正在react native中开发一个测试应用程序 并尝试从本地存储位置获取图像 我实际在做什么 我将图像直接链接源提供给 var 并在渲染函数中调用此方法 react 0 14 8 react native 0 23 1 np

随机推荐

  • c#获取控件指定坐标的像素值

    DllImport 34 gdi32 dll 34 private static extern uint GetPixel IntPtr hDC int XPos int YPos Graphics g 61 control CreateG
  • C#完美实现透明窗体的绘制效果

    为了实现透明窗体的绘制 xff0c 最开始是采用了双层窗体的模式 思路 xff1a 将form1的属性transparencyKey设置为背景色 xff0c 将form2的opicaty设置的很低 xff0c 比如0 05 保证鼠标不会穿透
  • CAS SSO 单点登录框架 学习

    1 了解单点登录 SSO 主要特点是 SSO 应用之间使用 Web 协议 如 HTTPS xff0c 并且只有一个登录入口 SSO 的体系中有下面三种角色 1 User 多个 2 Web 应用 多个 3 SSO 认证中心 一个 2 SSO
  • C# override详解

    重载 重写 覆写 xff0c 分别指的是overload override new 一 override重写 xff0c 是在子类中重写父类中的方法 xff0c 两个函数的函数特征 xff08 函数名 参数类型与个数 xff09 相同 用于
  • C# -WinForm 中英文实现, 国际化实现的简单方法

    来源 xff1a http www jb51 net article 45675 htm xff0c 今天看到了借鉴过了 xff0c 保存一下 xff0c 下次开发直接用嘻嘻 软件行业发展到今天 xff0c 国际化问题一直都占据非常重要的位
  • C#的Winform多语言实现(resx文件)

    使用resx文件实现Winform多语言切换 xff0c 本博文提供的代码可以实现简体中文 繁体中文 英文的切换 如果需要增加其它语言的切换 xff0c 只需要编写相应的语言的resx文件即可 并且 xff0c 当修改了语言之后 xff0c
  • c#中中读取嵌入和使用资源文件的方法

    Dotnet中嵌入资源 xff08 位图 图标或光标等 xff09 有两种方式 xff0c 一是直接把资源文件加入到项目 xff0c 作为嵌入资源 xff0c 在代码中通过Assembly的GetManifestResourceStream
  • c#中英文切换实例

    1 创建两个资源文件 Resource en US resx Resource zh CN resx 注意中间部分每种语言文件名固定 xff0c 后缀名是 resx 首部分是自定义的名字 2 创建读写工具类 上面两个资源文件都是在Utili
  • TCP/IP协议讲的明明白白

    从字面意义上讲 xff0c 有人可能会认为 TCP IP 是指 TCP 和 IP 两种协议 实际生活当中有时也确实就是指这两种协议 然而在很多情况下 xff0c 它只是利用 IP 进行通信时所必须用到的协议群的统称 具体来说 xff0c I
  • TCP/IP协议与Http协议的区别详解

    TPC IP协议是传输层协议 xff0c 主要解决数据如何在网络中传输 xff0c 而HTTP是应用层协议 xff0c 主要解决如何包装数据 关于TCP IP和HTTP协议的关系 xff0c 网络有一段比较容易理解的介绍 xff1a 我们在
  • C#中使用MD5对用户密码加密与解密

    C 中常涉及到对用户密码的加密于解密的算法 xff0c 其中使用MD5加密是最常见的的实现方式 本文总结了通用的算法并结合了自己的一点小经验 xff0c 分享给大家 一 使用16位 32位 64位MD5方法对用户名加密 1 xff09 16
  • C#中修改文件或文件夹的权限,为指定用户、用户组添加完全控制权限

    写在前面 在windows系统中 xff0c c盘中的目录权限比较高 xff0c 有时制作安装包的时候 xff0c 默认的安装路径就是在c盘 xff0c 但对运行可执行文件 xff0c 有时候需要为其添加完全控制权限 xff0c 或者读写权
  • C#使用SafeNet的开发狗和超级狗加密使用方法

    1 在安装光盘中选择Windows文件夹 xff0c 单击Setup exe执行安装程序 xff0c 安装过程默认选择 xff0c 单击下一步即可 2 安装完毕后插入超级狗 xff0c 在菜单栏中打开 超级狗开发商向导 xff0c 选择下载
  • Keil5 新建工程编译后Download按钮变灰

    Keil5 新建工程编译后Download按钮变灰 百度看到很多文章解决变灰方法为 这个主要目的是生成 HEX文件 xff0c 但有时候当你在线下载时点了Creat HEX File 并进行编译后 Download按钮依然呈现灰色 此时问题
  • C# SQLite 数据库操作语句与文件视图管理器

    sqlite数据库视图管理器 SQLiteSpy是一款专业的SQLite数据库管理 xff0c 主要用于读取sqlite数据库 xff0c 建立新的SQL查询 xff0c 视图 xff0c 复制和删除表 编辑单元格 xff0c 以及查看索引
  • C#JSON与XML相互转换

    using System using System Collections Generic using System Linq using System Text using System Xml using Newtonsoft Json
  • 让使用SQLite的.NET应用自适应32位/64位系统

    Windows 7 64 bit 刚扩到4G内存 果断换64位的 那速度杠杠的 Microsoft Visual Studio 2010 Ultimate 32bit 在64位系统里运行正常 sqlite netFx40 setup bun
  • WinForm 布局控件“WeifenLuo.WinFormsUI.Docking“的使用

    本篇介绍Winform程序开发中的布局界面的设计 xff0c 介绍如何在我的共享软件中使用布局控件 34 WeifenLuo WinFormsUI Docking 34 布局控件 34 WeifenLuo WinFormsUI Dockin
  • C#中JSON和对象之间互相转换功能示例

    本文实例讲述了C 实现JSON和对象之间互相转换功能 分享给大家供大家参考 xff0c 具体如下 xff1a 1 首先是声明用户信息对象 xff0c DataContract修饰类 xff0c 表示可以被解析成JSON xff0c Data
  • C#使用DataContractJsonSerializer来进行JSON解析

    在使用DataContractJsonSerializer进行解析之前 xff0c 我们首先需要将两个包引入进来 xff1a using System Runtime Serialization using System Runtime S