[英]Serializing JSON using c#
我正在開發一些App。 我想以JSON將數據從服務器發送到Android應用程序。 我有一個RestFul WCF service
,我的客戶端通過該RestFul WCF service
與服務器進行通信。 如果我想要一個單一值,那很好。但是當我想要一堆數據時,我很驚訝。 我搜索了一些線程,並研究了JSON.net字典和對象,但沒有找到任何簡單的示例。 如果有人給我先機或解決我的問題,將不勝感激。
這是我嘗試的一個例子。
數據庫
現在我想要什么? 我想要所有在JSON字符串或對象格式中具有q_QuizCode
= dfsew43的結果。
我如何嘗試:
public GetQuiz getAllQuiz(string q_code)
{
GetQuiz getQuizObject = new GetQuiz();
List<GetQuiz> gQuiz = new List<GetQuiz>();
#region DataBase_Connectivity
string strConnectionString = ConfigurationManager.ConnectionStrings["SQL"].ConnectionString;
SqlConnection conn = new SqlConnection(strConnectionString);
conn.Open();
#endregion
string query = "select q_Question,q_opa,q_opb,q_opc,q_opd,q_cop from Table_QuizDetail where q_QuizCode = @qcode";
SqlCommand oCmd = new SqlCommand(query, conn);
oCmd.Parameters.AddWithValue("@qcode", q_code);
using (SqlDataReader oReader = oCmd.ExecuteReader())
{
while (oReader.Read())
{
getQuizObject.Quiz_Question = oReader["q_Question"].ToString();
getQuizObject.Quiz_Option_A = oReader["q_opa"].ToString();
getQuizObject.Quiz_Option_B = oReader["q_opb"].ToString();
getQuizObject.Quiz_Option_C = oReader["q_opc"].ToString();
getQuizObject.Quiz_Option_D = oReader["q_opd"].ToString();
getQuizObject.Quiz_Correct_Op = oReader["q_cop"].ToString();
gQuiz.Add(getQuizObject);
}
}
}
我得到的是:
{
"getAllQuizResult":{
"Quiz_Correct_Op":"b",
"Quiz_Option_A":"jreowi",
"Quiz_Option_B":"slkj",
"Quiz_Option_C":"elk",
"Quiz_Option_D":"dslkj",
"Quiz_Question":"ewepewoirpowejrdsngfdglfdjkbk"}
}
這就是我實際上在數據庫中遍歷的行。
您需要在while循環中實例化新的GetQuiz對象,就像Patrick所說的那樣。
但是該方法還應該返回List<GetQuiz>
而不是GetQuiz
。
將方法簽名更改為
public List<GetQuiz> getAllQuiz(string q_code)
並添加
return gQuiz
作為方法中的最后一條語句,否則它將無法編譯。
那是因為您在迭代時不會再次實例化getQuizObject
對象。 因此,它會不斷更改原始getQuizObject
對象的值。
嘗試這個:
while (oReader.Read())
{
GetQuiz getQuizObject = new GetQuiz();
...
gQuiz.Add(getQuizObject);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.