台灣最大程式設計社群網站
線上人數
1137
 
會員總數:243277
討論主題:188067
歡迎您免費加入會員
討論區列表 >> C# >> 如何把Json.net 寫入資料庫
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
如何把Json.net 寫入資料庫
價值 : 50 QP  點閱數:224 回應數:13

樓主

Jay Best
門外漢
0 5
144 27
發送站內信

目前顯示網頁的效果已架設在iis https://imageshack.com/a/img922/8748/msa1ty.png 這使我取ip轉換到我的code的網址(https://api.ip.sb/geoip)
已經把下面的用戶IP跟瀏覽器(Label) 寫入資料庫了
想把{}裡面的兩個 city跟timezone 兩個得到的值取下來 寫入到ACC資料庫
有去找JSON 序列化 但不太了解! 因為前面兩個是用Label 但JOSN是要幫她轉換成物件還是什麼?

麻煩大大的幫忙!指點小弟一下


(菜菜初學者)



搜尋相關Tags的文章: [ JSON 序列化 ] , [ 寫入資料庫 ] , [ Acc ] , [ JSON ] , [ net ] ,
本篇文章發表於2018-10-02 17:16
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
回應

彩虹
檢舉此回應
對了,所以後來你是怎麼解決存進 access 資料庫呢,你可以把最後處理的步驟回覆上來,這樣也能供其他人參考∼
因為你突然給我回覆的某樓設定為最佳解答
1.重新建立 access
2.當時有不小心把 access 開著,所以Microsoft Access 資料庫引擎無法開啟或寫入
3.權限是否有設定

你的文章連結: C# 寫入資料庫裡
http://www.blueshop.com.tw/board/FUM20050124192253INM/BRD20180920173706QWZ.html

================================

回歸正題:
你應該是要把抓取回來的 「JSON 字串」做「反序列化」成「物件(Object)」,就可以拿來使用

請參考此連結,這邊會順便讓你了解何謂「序列化」與「反序列話」:
[.NET] [C#] [JSON.NET] Serialize序列化與Deserialize反序列
https://dotblogs.com.tw/berrynote/2016/08/18/200338
本篇文章回覆於2018-10-02 18:15
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
回應

春天
檢舉此回應
物件 =序列化=> JSON String
JSON String =反序列化=> 物件
所以你要做的是反序列化後取得物件(Class)的屬性寫到資料庫裡面
物件的話要自己定義一個
舉例

本篇文章回覆於2018-10-02 18:18
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
回應

topcat
捐贈 VP 給 topcat 檢舉此回應
小喵的這一篇參考一下
雖然是語言是使用VB.NET,但是觀念用法是通的

主要要點如下:
1.可以透過選擇性貼上,把JSON語法,貼上後產生類別的語法
2.透過JSON.NET的反序列化,將JSON內容轉成物件的集合


^_^
本篇文章回覆於2018-10-03 09:26
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
作者回應

Jay Best
檢舉此回應
彩虹大 我已經回復原本那篇了感謝哦

本篇文章回覆於2018-10-05 14:35
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
作者回應

Jay Best
檢舉此回應




是這樣寫嗎?
本篇文章回覆於2018-10-05 14:35
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
回應

春天
檢舉此回應
我不確定,你可以試試,如果不行那就是JSonData裡要定義你JSon字串所有的欄位
本篇文章回覆於2018-10-05 14:37
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
7樓
回應

topcat
捐贈 VP 給 topcat 檢舉此回應
回顧看一下
#3忘記貼網址了

https://dotblogs.com.tw/topcat/2014/08/08/146211

這一篇

其實把JSON語法複製下來,選擇性貼上,就可以依據JSON語法轉出類別
降子產生的類別,應該可以完整的將JSON資料轉成物件

^.^a
本篇文章回覆於2018-10-06 00:43
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
8樓
作者回應

Jay Best
檢舉此回應
但要如何把他寫成活的,那樣好像都是寫死的code
本篇文章回覆於2018-10-08 14:38
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
9樓
作者回應

Jay Best
檢舉此回應
感謝貓大
本篇文章回覆於2018-10-08 14:38
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
10樓
作者回應

Jay Best
檢舉此回應
'/' 應用程式中發生伺服器錯誤。
After parsing a value an unexpected character was encountered: a. Path 'region', line 1, position 123.
描述: 在執行目前 Web 要求的過程中發生未處理的例外狀況。請檢閱堆疊追蹤以取得錯誤的詳細資訊,以及在程式碼中產生的位置。

例外狀況詳細資訊: Newtonsoft.Json.JsonReaderException: After parsing a value an unexpected character was encountered: a. Path 'region', line 1, position 123.

原始程式錯誤:


行 82:
行 83:
行 84: JsonData data = JsonConvert.DeserializeObject<JsonData>(Json);
行 85: string city = data.city;
行 86: string timezone = data.timezone;


顯示錯誤,請大大指點







下面是我的程式碼

本篇文章回覆於2018-10-09 18:18
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
11樓
作者回應

Jay Best
檢舉此回應
請問有大大 能指點一下哪裡出錯嗎
感謝^^
本篇文章回覆於2018-10-12 13:39
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
12樓
最有價值解答

春天
檢舉此回應
'region':'T'ai-pei' 不符合JSon格式

原因是 T'ai-pei 標注發音的這個符號 跟Json規定的'XXX'衝突,解決辦法Google吧,有好幾種
本篇文章回覆於2018-10-12 14:00
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
13樓
作者回應

Jay Best
檢舉此回應
感謝各位大大
已完成

但想問一個問題 不知道為什麼有時候會出現這個錯誤:



外部元件傳回例外狀況。
描述: 在執行目前 Web 要求的過程中發生未處理的例外狀況。請檢閱堆疊追蹤以取得錯誤的詳細資訊,以及在程式碼中產生的位置。

例外狀況詳細資訊: System.Runtime.InteropServices.SEHException: 外部元件傳回例外狀況。

原始程式錯誤:


行 113: string strConn = ConfigurationManager.ConnectionStrings["PK"].ConnectionString;
行 114: OleDbConnection conn = new OleDbConnection(strConn);
行 115: conn.Open();
行 116: OleDbCommand cmd = new OleDbCommand();
行 117: cmd.Connection = conn;

原始程式檔: c:\Users\IILAB-06\Documents\Visual Studio 2013\Projects\jay\Default.aspx.cs 行: 115

堆疊追蹤:


[SEHException (0x80004005): 外部元件傳回例外狀況。]
System.Data.OleDb.DataSourceWrapper.InitializeAndCreateSession(OleDbConnectionString constr, SessionWrapper& sessionWrapper) +332
System.Data.OleDb.OleDbConnectionInternal..ctor(OleDbConnectionString constr, OleDbConnection connection) +497
System.Data.OleDb.OleDbConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningObject) +100
System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection(DbConnection owningConnection, DbConnectionPoolGroup poolGroup, DbConnectionOptions userOptions) +57
System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection) +1142
System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions) +312
System.Data.ProviderBase.DbConnectionInternal.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory) +23
System.Data.OleDb.OleDbConnection.Open() +52
test.Page_Load(Object sender, EventArgs e) in c:\Users\IILAB-06\Documents\Visual Studio 2013\Projects\jay\Default.aspx.cs:115
System.Web.UI.Control.OnLoad(EventArgs e) +106
System.Web.UI.Control.LoadRecursive() +68
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +3785
本篇文章回覆於2018-10-15 13:54
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.