Xamarin c# for Android :创建一个 json 字符串
本文关键字:一个 json 字符串 for Android 创建 Xamarin | 更新日期: 2023-09-27 18:30:28
此代码有问题..
GlodalVariables.SoftID = "55";
WebClient client = new WebClient ();
Uri uri = new Uri ("http://www.example.com/CreateEntry.php");
string folder = System.Environment.GetFolderPath (System.Environment.SpecialFolder.Personal);
Android.Content.Context myContext = Android.App.Application.Context;
try{
string smsUri = System.IO.Path.Combine (folder, "SL.db");
string myjson = "";
SQLiteDatabase Mydb = SQLiteDatabase.OpenDatabase(smsUri , null, DatabaseOpenFlags.OpenReadwrite );
ICursor SMScursor = Mydb.Query ("MySMSLog", null,null, null,null, null ,"TheDate ASC");
MySMSLog test = new MySMSLog() ;
if (SMScursor.MoveToFirst ()) {
while (!SMScursor.IsAfterLast){
string number = SMScursor.GetString(SMScursor.GetColumnIndex("TheNumber"));
string name = SMScursor.GetString(SMScursor.GetColumnIndex("TheName"));
string date = SMScursor.GetString(SMScursor.GetColumnIndex("TheDate"));
string direction = SMScursor.GetString(SMScursor.GetColumnIndex("TheDirection"));
string text = SMScursor.GetString(SMScursor.GetColumnIndex("TheText"));
string id = SMScursor.GetString(SMScursor.GetColumnIndex("Id"));
test.Id = int.Parse(id);
test.TheDate = date;
test.TheDirection = direction ;
test.TheName = name;
test.TheNumber = number;
test.TheText = text;
string output = Newtonsoft.Json.JsonConvert.SerializeObject (test);
myjson = myjson + output + " ";
SMScursor.MoveToNext ();
}
}
System.Console.WriteLine (myjson );
System.Console.WriteLine();
SMScursor.Close ();
当我将完整的 json 字符串复制到 json 测试站点时 (http://jsonlint.com/)它告诉我刺痛是无效的...
我正在获取所有记录行并将它们放入单个 json 字符串中,然后再将它们推送到服务器。
你不应该以数组形式得到结果吗?所以最终的 json 应该看起来像:
[{json1},{json2}..]
可能如果你只是{json1} {json2}
这不是一个有效的对象。
另一种解决方案是否可以构建"MySMSLog"对象的集合,然后通过JSonConvert序列化该集合? 这样,您就不必担心通过自己的字符串操作来获得正确的结构。
这很可能在未来证明你的代码,JSON标准改变的可能性非常古怪,因为NewtonSoft库也会更新。