Šis raksts ir mašīntulkošanas spoguļraksts, lūdzu, noklikšķiniet šeit, lai pārietu uz oriģinālo rakstu.

Skats: 23922|Atbildi: 0

[Avots] .net/c# WeChat publiskās platformas ziņojumu interfeisa vadlīnijas Serializācija un deserializācija

[Kopēt saiti]
Publicēts 23.08.2016 17:07:02 | | |
Nesen brālis Shuang vēlējās izmēģināt WeChat publiskā konta izstrādātāja režīmu, un viņš pieteicās kontam WeChat publiskajā platformā. Tad es devos apskatīt atvērtās platformas interfeisa rokasgrāmatu, viņš grupā ievietoja saiti, WeChat nesen ir pārkarsis, es arī ziņkārīgi noklikšķināju.

Noklikšķiniet uz ziņojumu interfeisa rokasgrāmatas, mēs redzam, ka publiskās platformas ziņojumu saskarne datu mijiedarbībai izmanto XML. Datu manipulācijas ērtībai mēs parasti serializējam un deserializējam XML. Serializācija ir objekta stāvokļa pārvēršana formātā, ko var uzturēt vai pārsūtīt. Serializācijas pretstats ir deserializācija, kas plūsmas pārvērš objektos. Šie divi procesi apvienojas, lai atvieglotu datu glabāšanu un pārsūtīšanu.

Vispirms parunāsim par serializāciju, kā piemēru ņemsim XML formātu, lai atbildētu uz grafiskajiem ziņojumiem, jo šis formāts būtībā ietver visu iepriekš minēto ziņojumu un ziņojumu atbildi.


Kad <xml><Articles>mēs saņemam datu atbildi no publiskās platformas POST, lai atgrieztu izvadi, mēs izmantojam XML serializāciju, tas ir, lai pārvērstu atbildes datu objektu publiskās platformas nodrošinātajā XML datu formātā, kas ir ērts datu pārraidei. Serializācija Šeit es uzrakstīju vienkāršu koda piemēru C#. Lai iegūtu serializēto virkni, Nav tiešas izvades, protams, jūsu projektā jūs varat tieši Response.Output.


Šeit ir minēts, ka XML saknes elementa nosaukums, ko ģenerē XmlSerializer klases Serialize metode, pēc noklusējuma ir serializācijas klases nosaukums. Kāpēc es jūtos tik mēles vērpšana, kad es lasu šo teikumu? Un es nevēlos izmantot bezjēdzīgu vārdu, piemēram, xml kā klases nosaukumu, mums ir jāpievieno rekvizītu tags serializācijas klasei [XmlRoot(ElementName = "xml")], lai norādītu, ka ģenerētais XML elements ir nosaukts par xml.
Ja nepievienojat šo atzīmi, ja serializācijas klases nosaukums neatbilst XML saknes elementa nosaukumam, vienmēr tiek parādīta dokumenta formāta kļūda.

Pēc saknes elementa iegūšanas mums ir jāatrisina rakstu savākšanas mezgla problēma, šobrīd mums ir jāizveido jauns spēcīgu veidu saraksts, un mainīgo sauc par Raksti publiskais īpašums.


XmlArrayItemAttribute ir atvasināts tips, kas norāda, ka XmlSerializer var ievietot serializētā masīvā. Pēc klases izveides, atkļūdošanas un apskates būtībā nav lielu problēmu.

Parunāsim par deserializāciju. Kad parasts WeChat lietotājs nosūta ziņojumu uz publisko kontu, WeChat serveris POST ziņojumu uz aizpildīto URL. Šajā laikā mums ir jādeserializē saņemtie dati objektos, kas nepieciešami ērtai darbībai un uzglabāšanai. Parasti mēs izmantojam Request.Form["param"], lai iegūtu ziņas datus, un daudzi izstrādātāji atklāj, ka, aplūkojot saskarnes dokumentāciju, POST datiem nav parametru, un viņi ir apjukuši un nezina, kā iegūt datus. Šeit mēs izmantojam Request.InputStream, lai iegūtu ienākošā HTTP entītijas ķermeņa saturu. Lai iegūtu vairāk informācijas, lūdzu, skatiet šo rakstu: http://blog.sina.com.cn/s/blog_9fa44b550101ee3r.html

Deserializācija Šeit es uzrakstīju vienkāršu koda piemēru C#.


Šeit, tā kā tā ir virkne, kas tieši kopē xml parauga datus, kas atbild uz grafisko ziņojumu, tiek izmantota Deserialize (TextReader textReader) pārslodze, protams, projektā varat tieši izmantot Deserialize (Stream stream) pārslodzi.

Jautājumus par XML serializāciju skatiet šajā rakstā par MSDN par XML un SOAP serializāciju

Es esmu ievietojis attiecīgo instances koda failu github vietnē XmlSerializerExample

Rakstiet steigā un vienkārši atzīmējiet atzīmi. Es naktī neēdu pietiekami daudz, un tagad man ir slikta dūša. Man ātri jāiet gulēt.
Ja ir kādas kļūdas, lūdzu, izlabojiet tās.

Oriģinālā saite:

http://imr3.com/tech/weixin-message-api-serialize





Iepriekšējo:XML deserializācija XML dokumentā (1, 2) ir kļūda.
Nākamo:[avota kods].net/c# WeChat inteliģentā tērzēšana ĢIS atrašanās vietas informācijas skenēšana, lai iegūtu attēla funkciju
Atruna:
Visa programmatūra, programmēšanas materiāli vai raksti, ko publicē Code Farmer Network, ir paredzēti tikai mācību un pētniecības mērķiem; Iepriekš minēto saturu nedrīkst izmantot komerciāliem vai nelikumīgiem mērķiem, pretējā gadījumā lietotājiem ir jāuzņemas visas sekas. Informācija šajā vietnē nāk no interneta, un autortiesību strīdiem nav nekāda sakara ar šo vietni. Iepriekš minētais saturs ir pilnībā jāizdzēš no datora 24 stundu laikā pēc lejupielādes. Ja jums patīk programma, lūdzu, atbalstiet oriģinālu programmatūru, iegādājieties reģistrāciju un iegūstiet labākus oriģinālus pakalpojumus. Ja ir kādi pārkāpumi, lūdzu, sazinieties ar mums pa e-pastu.

Mail To:help@itsvse.com