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 字符串中,然后再将它们推送到服务器。

Xamarin c# for Android :创建一个 json 字符串

你不应该以数组形式得到结果吗?所以最终的 json 应该看起来像:

[{json1},{json2}..] 

可能如果你只是{json1} {json2}这不是一个有效的对象。

另一种解决方案是否可以构建"MySMSLog"对象的集合,然后通过JSonConvert序列化该集合? 这样,您就不必担心通过自己的字符串操作来获得正确的结构。

这很可能在未来证明你的代码,JSON标准改变的可能性非常古怪,因为NewtonSoft库也会更新。