.net 字元串和JSON格式的互換

来源:http://www.cnblogs.com/LittleBai/archive/2016/10/12/5953919.html
-Advertisement-
Play Games

近期又做了個問卷調查,問卷調查一次性要保存一二十個題目和答案!所以嘞,博主為了偷懶,就直接把答卷內容保存成了Json格式! 好處當然是很多啦! 只需一個欄位就能保存整個答卷的內容! 想想都刺激!哈哈~! 好了,閑話少敘,直入正題! 首先,一般不會保存題目,要求的可能是只保存答案!比如第幾題對應的調查 ...


近期又做了個問卷調查,問卷調查一次性要保存一二十個題目和答案!所以嘞,博主為了偷懶,就直接把答卷內容保存成了Json格式!

好處當然是很多啦! 只需一個欄位就能保存整個答卷的內容! 想想都刺激!哈哈~!

好了,閑話少敘,直入正題!

首先,一般不會保存題目,要求的可能是只保存答案!比如第幾題對應的調查者選的是什麼答案等等!

先聲明一個題目類Expreience,當然,你如果想連題目一起加上的話,你可以多聲明幾個欄位嘛,是吧!

代碼如下:

 public class Expreience
 {
     public string exp1 { get; set; }
     public string exp2 { get; set; }
     public string exp3 { get; set; }
     public string exp4 { get; set; }
     public string exp5 { get; set; }
     public string exp6 { get; set; }
     public string exp7 { get; set; }
     public string exp8 { get; set; }
     public string exp9 { get; set; }
     public string exp10 { get; set; }
 }    

 歐克,現在我有十道題,從上面的代碼就能看粗來!廢話連篇,滿臉嫌棄,哼哼哼~!

好吧,精神分裂患者!

聲明好了題目類,接下來該把字元串改成Json格式了,註意哈!!!不要走神!

你快點兒吧,啰嗦!

好吧,現在來看下轉化代碼:

Hashtable hash = new Hashtable();
hash["exp1"] = "選A"; 
hash["exp2"] = "選博主";
hash["exp3"] = "回去好好養著";
hash["exp4"] = "小白";
hash["exp5"] = "去撿過來";
hash["exp6"] = "小白";
hash["exp7"] = "去給粑粑的鞋叼過來";
hash["exp8"] = "小白";
hash["exp9"] = "賞你根骨頭";
hash["exp10"] = "旺旺旺";
JavaScriptSerializer ser = new JavaScriptSerializer(); 
string ansJsonStr = ser.Serialize(hash);

 

 

聲明Hashtable類,以鍵值對的形式存儲每道題對應的值,然後轉換成Json字元串;切記:hash["exp1"]中的exp1要和題目類Expreience中的exp1對應起來!

記得引用:

using System.Web.Script.Serialization;
using System.Collections;

 

好了,就這麼簡單,看看轉換後的格式:

{
    "exp4": "小白",
    "exp9": "賞你根骨頭",
    "exp6": "小白",
    "exp1": "選A",
    "exp3": "回去好好養著",
    "exp8": "小白",
    "exp5": "去撿過來",
    "exp10": "旺旺旺",
    "exp7": "去給粑粑的鞋叼過來",
    "exp2": "選博主"
}

呃呃呃。。。雖是沒按順序轉換,但絕對是正確滴! 好尷尬呀!!!這破機器~!呵呵呵...

好了,來看下資料庫保存的狀況:

好神奇喲,真是一個欄位存儲的啊!讓你裝逼,看看你怎麼取值,哼哼~!

取值?哎呀,我好怕呀!難倒我了喲!!!哈哈哈,逗你玩兒!

歐克,現在來說說,如何將這段字元串再轉化成可以隨意取值的類型,方便我們取任何一道題的值!

能裝進去,肯定就能釋放粗來呀!你看著吧!哈哈~

少啰嗦,快點兒!不講的話,尿點兒就來了!

好好好,閑言少敘,Go On!!!

轉換回來其實也很簡單的,上代碼:

 public Expreience GetData(string jsonStr)
 {
     return (Expreience)Newtonsoft.Json.JsonConvert.DeserializeObject(jsonStr, typeof(Expreience));
 }

 

好了,轉換好了! 什麼?怎麼用?這都不會,真是夠笨的!好吧,繼續》》》

 public string GetDataToString(string jsonStr) 
    {
        if (string.IsNullOrEmpty(jsonStr))
            return "";
        Expreience strtemp = GetData(jsonStr);
        string dataTemp = "第1題:" + strtemp.exp1 +
                          "第2題:" + strtemp.exp2 + 
                          "第3題:" + strtemp.exp3 +
                          "第4題:" + strtemp.exp4 + 
                          "第5題:" + strtemp.exp5 + 
                          "第6題:" + strtemp.exp6 +
                          "第7題:" + strtemp.exp7 +
                          "第8題:" + strtemp.exp8 +
                          "第9題:" + strtemp.exp9;
        return dataTemp;
    }

 

好了,按順序取值了!

就這麼簡單!嗯嗯嗯!

 

拙文一篇,忘各位賜教!

討論群: 225443677    歡迎騷擾,不報警的,也不會懷孕的!真的,加了的人都知道!

 

謝謝!

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 一、使用分散式鎖要滿足的幾個條件: 二、應用的場景例子 管理後臺的部署架構(多台tomcat伺服器+redis【多台tomcat伺服器訪問一臺redis】+mysql【多台tomcat伺服器訪問一臺伺服器上的mysql】)就滿足使用分散式鎖的條件。多台伺服器要訪問redis全局緩存的資源,如果不使用 ...
  • 當在使用greenplum過程中有不當的操作時,可能會出現segment節點宕掉的情況(比如在greenplum運行的過程中停掉其中幾台segment節點的伺服器),通過下麵的方法可以恢復segment。 下麵是現場出現的故障情況: 可以看到有6個節點Failed,有2個節點的Primary和Mir ...
  • 背景 現在越來越多的企業、公司要求對於資料庫實現7*24小時的資料庫監控,一般情況下採用的就是第三方的平臺來實現郵件和手機簡訊的監測提醒。前幾日公司新上了一臺伺服器,急於部署程式還沒來得及搭建其他相關平臺,為了更好的監控資料庫,暫時用SQL Server自帶的郵件服務來實現對資料庫的監控和預警。下麵 ...
  • 1、打開mysql.exe(MySQL Command Line Client),輸入密碼 2、輸入:use mysql; 3、查詢host輸入: select user,host from user; 4、創建host(如果有"%"這個host值,則跳過這一步) 如果沒有"%"這個host值,就執 ...
  • 問題一: 第一次mysql啟動服務失敗,未返回報錯信息 解決方法: 執行mysqld -console命令,查看error信息,對症下藥 但一般情況下,主要是因為mysql目錄下的data文件夾中內容不正確,解決方法有以下兩個 1.在開啟服務前執行初始化命令 mysqld --initalize 然 ...
  • ...
  • Spark存儲管理(讀書筆記) 轉載請註明出處: "http://www.cnblogs.com/BYRans/" Spark的存儲管理 RDD的存放和管理都是由Spark的存儲管理模塊實現和管理的。本文從架構和功能兩個角度對Spark的存儲管理模塊進行介紹。 架構角度 從架構角度,存儲管理模塊主要 ...
  • Mongodb:修改文檔結構後出現錯誤:Element '***' does not match any field or property of class ***. Mongodb是一種面向文檔的資料庫,即不再有“行”的概念,取而代之的是更為靈活的“文檔”(doucument)模型。在開發中,經 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...