MAVZU: Foydalanuvchi kiritgan ma’lumotlarni tekshirish
Maqsad: Talabalar foydalanuvchi kiritgan ma’lumotlarni tekshirishni o’rganish.
Massivlarni olish
Xuddi shunday, siz boshqa turdagi maydonlarning massiv qiymatlarini yoki elementlar to'plamini ifodalovchi maydonlarni, masalan, bir nechta tanlovni qo'llab-quvvatlaydigan select elementni tanlashingiz mumkin:
Name:
Age:
Languages:
C#
JavaScript
Kotlin
Java
Dasturni ishga tushirganimizda natija quyidagicha bo’ladi:
json faylni yuborish va qabul qilish
JSON ma'lumotlarni uzatish uchun keng tarqalgan formatdir. json ma'lumotlarini qanday yuborishimiz va qabul qilishimiz mumkinligini ko'rib chiqaylik.
JSON yuborish
WriteAsJsonAsync usuli Json yuborish uchun HttpResponse obyektining WriteAsJson ()/ WriteAsJsonAsync () usulidan foydalanishingiz mumkin.
Bu usul sizga JSON formatiga o'tkazilgan ob'ektlarni ketma-ketlashtirish imkonini beradi va " content-type " sarlavhasini avtomatik ravishda " application/json ; charset=utf-8 " ga o'rnatadi:
{ Person inson = new ( "Alisher" , 31); await context.Response.WriteAsJsonAsync(inson); }); app.Run(); public record Person ( string Ismi, int yoshi); " width="640"
var builder = WebApplication.CreateBuilder();
var app = builder.Build();
app.Run( async (context) =
{
Person inson = new ( "Alisher" , 31);
await context.Response.WriteAsJsonAsync(inson);
});
app.Run();
public record Person ( string Ismi, int yoshi);
Bunday holda, mijozga yozuvlar sinfini ifodalovchi Person tipidagi ob'ekt yuboriladi, lekin u oddiy sinf ham bo'lishi mumkin:
{ var response = context.Response; response.Headers.ContentType = "application/json; charset=utf-8" ; await response.WriteAsync( "{'ismi':'Alisher', 'yoshi':37}" ); }); " width="640"
Standart WriteAsync () usulidan ham foydalanishingiz mumkin:
var builder = WebApplication.CreateBuilder();
var app = builder.Build();
app.Run( async (context) =
{
var response = context.Response;
response.Headers.ContentType = "application/json; charset=utf-8" ;
await response.WriteAsync( "{'ismi':'Alisher', 'yoshi':37}" );
});
JSON qabul qilish. ReadFromJsonAsync usuli
So'rovdan JSON ob'ektini olish uchun HttpRequest klassi ReadFromJsonAsync () usulini belgilaydi. Bu sizga ma'lumotlarni ma'lum turdagi ob'ektga ketma-ketlashtirish imkonini beradi.
Masalan, loyihada html papkasini yaratamiz, unda biz yangi bosh_sahifa.html faylini aniqlaymiz.
bosh_sahifa
User form
Name:
Age:
Jo`natish
document.getElementById( "sendBtn" ).addEventListener( "click" , send);
async function send(e) {
e.preventDefault();
const response = await fetch( "/api/user" , {
method: "POST" ,
headers: { "Accept" : "application/json" , "Content-Type" : "application/json" },
body: JSON.stringify({
name: document.getElementById( "userName" ).value,
age: document.getElementById( "userAge" ).value
})
});
const message = await response.json();
document.getElementById( "message" ).innerText = message.text;
}
Bu yerda fetch () funksiyasidan foydalangan holda tugmani bosgandan so'ng, nomi va yoshiga ega ob'ekt "/api/user" manziliga yuboriladi, uning qiymatlari forma maydonlaridan olinadi. Serverdan javob sifatida veb-sahifa json formatidagi ob'ektni ham oladi, u matn xususiyatiga ega - serverdan xabarni saqlaydigan xususiyatga ega.
Endi, Program.cs faylida veb-sahifa tomonidan yuborilgan ma'lumotlarni olish uchun kodni aniqlaymiz:
{ var response = context.Response; var request = context.Request; if (request.Path == "/api/user" ) { var responseText = “Aniqlanmagan ma'lumotlar" ; // standart xabar mazmuni if (request.HasJsonContentType()) { var person = await request.ReadFromJsonAsync(); if (person != null ) responseText = $"Name: {person.Name} Age: {person.Age} " ; } await response.WriteAsJsonAsync( new { text = responseText }); } else { response.ContentType = "text/html; charset=utf-8" ; await response.SendFileAsync( "html/bosh_sahifa.html" ); } }); app.Run(); public record Person ( string Name, int Age); " width="640"
var builder = WebApplication.CreateBuilder();
var app = builder.Build();
app.Run( async (context) =
{
var response = context.Response;
var request = context.Request;
if (request.Path == "/api/user" )
{
var responseText = “Aniqlanmagan ma'lumotlar" ; // standart xabar mazmuni
if (request.HasJsonContentType())
{
var person = await request.ReadFromJsonAsync();
if (person != null )
responseText = $"Name: {person.Name} Age: {person.Age} " ;
}
await response.WriteAsJsonAsync( new { text = responseText });
}
else
{
response.ContentType = "text/html; charset=utf-8" ;
await response.SendFileAsync( "html/bosh_sahifa.html" );
}
});
app.Run();
public record Person ( string Name, int Age);
Dastur natijasi quyidagicha:
Dasturning ismi va yoshini qayta o’zgartirsak va Jo’natish tugmasini bossak, ma’lumot qayta yuklanadi:
ETIBORINGGIZ UCHUN RAHMAT!