8
votes

Comment sérialiser un jeu de données à JSON ou XML

J'essaie de sérialiser le jeu de données à JSON ou XML. est-ce peut-être et comment? Tous les tutoriels et idées, s'il vous plaît.

Par exemple A avoir une table SQL: P>

string connectionString =
          "server=localhost;database=dbd;uid=**;pwd=**";

            SqlConnection mySqlConnection = new SqlConnection(connectionString);
            string selectString =  "SELECT keyValue, valueValue FROM dicTable";

            SqlCommand mySqlCommand = mySqlConnection.CreateCommand();

            mySqlCommand.CommandText = selectString;

            SqlDataAdapter mySqlDataAdapter = new SqlDataAdapter();

            mySqlDataAdapter.SelectCommand = mySqlCommand;

            DataSet myDataSet = new DataSet();

            mySqlConnection.Open();

            string dataTableName = "dictionary";
            mySqlDataAdapter.Fill(myDataSet, dataTableName);

            DataTable myDataTable = myDataSet.Tables[dataTableName];
            //now how to serialize it?


0 commentaires

3 Réponses :


19
votes

à XML c'est simple: xxx


0 commentaires

1
votes

Permettez-moi d'essayer de répondre à votre question. En ce qui concerne la sérialisation d'un jeu de données ou d'une table de données ne persiste pas à un fichier et de readback. Ce produit provoque des frais généraux IO et n'est pas viable dans tous les scénarios. Ce que vous devez faire est, écrivez une fonction pour sérialiser le jeu de données. (Assurez-vous que vous donnez un nom à l'inadérateur de jeu de données à Serialize. Voir l'exemple ci-dessous dans C #

/ * Utilisez cette méthode pour sérialiser un objet donné à XML. Nous allons passer de la sorte à cette version ultérieure * / p> xxx pré>

Après avoir implémenté la méthode Serialize, vous pouvez sérialiser votre fichier de données comme indiqué ci-dessous. Je n'écris pas mon échantillon entier ici pour la brièveté. P>

        adapter.Fill(employee);
        employee.TableName = "Employees";
        XmlElement xmlElement = (XmlElement)Serialize(employee);
        Console.WriteLine(xmlElement.ToString());
        string xmlString = xmlElement.OuterXml.ToString();

        return xmlString;


1 commentaires

Pourquoi pas seulement utiliser wressxml (comme CARRA suggère ), mais passe dans un MemorMODStream au lieu d'un nom de fichier?



2
votes

Voici comment le convertir en JSON:

dbContext db = new dbContext();
List<Object> jsonList = (List<Object>)JsonConvert.DeserializeObject(temp, typeof(List<Object>));


1 commentaires

Cela semble perdre une précision décimale lors de la désérialisation du DT en arrière.