Bu dizi c# ta nasil tanimlanir

Kodla Büyü

akbilonline

Seçkin Üye
Seçkin Üye
Mesajlar
328
Jquery de

Var kitaplar=[
{
"kitapadi": "deneme",
"fiyat": 123
},
{
"kitapadi": "hikaye",
"fiyat": 34
}
]

Yukaridaki diziyi c# ile nasil tanimlariz
 
2 boyutlu bir dizi kullanabilirsiniz. Olmazsa kendi struct ya da sınıfınızı oluşturur ve bunu dizi olarak tanıtırsınız.
 
Yukaridaki yapiyi olusturup json ile parse yapan bir uygulsma yapmam lazim. Jqueey ile yaptik c# ile olmadi
 
Model oluşturursunuz
Modeladi
public string kitapadi {get;set;}
public double fiyat {ger;set;}
......
List<Modeladi> list....
Kullanırsınız.
C# model list kullanımı filan diye arayabilirsiniz
 
Arkadaslar yukaridaki diziyi tanimlayan satirlari yazarsaniz sevinirim. Arastirdigim kodlari yazdim olmadi bir turlu
 
Buradaki gibi kullanabilirsiniz. urunler().toList(); gibi çağırırsınız.
Lambda yada linq kullanarak istediğiniz veriye ulaşırsınız
 

Ekli dosyalar

  • 15583288040368842688058309436861.jpg
    15583288040368842688058309436861.jpg
    157.2 KB · Görüntüleme: 29
  • 15583288369311896399303887211816.jpg
    15583288369311896399303887211816.jpg
    369.5 KB · Görüntüleme: 24
using System;
using System.Collections; // ArrayList sınıfnı kullanmak için
// System.Collection isimalanını eklemeliyiz..

class CshaprNedirCom
{
static void Main(string[] args)
{
ArrayList aList= new ArrayList(); // aList isimli ArrayList nesnesi oluşturalım.

// aList nesnemize sırası ile 5, 8, 1, 17 ve 20 değerlerini
// Add metodu ile ekleyelim.
aList.Add(5);
aList.Add(8);
aList.Add(1);
aList.Add(17);
aList.Add(20);

// aList'in elemanlarını ekrana yazdıryoruz:
Console.WriteLine("\t aList'in elemanları:");
foreach(int eleman in aList)
Console.WriteLine(eleman);

// aList dizimizden 8 ve 20 değerlerini çıkartalım:
aList.Remove(8);
aList.Remove(20);

// aList dizimize 66 ve 4 değerlerini ekleyelim:
aList.Add(66);
aList.Add(4);

Console.WriteLine("\n\t aList dizisinden 8 ve 20\' çıkartıp, 66 ve 4 ekledik:");
foreach(int eleman in aList)
Console.WriteLine(eleman);



Console.ReadLine();

}
}

Yukarıdaki örneğimizde öncelikle ArrayList sınıfını kullanmak için NET sınıf kütüphanesinin System.Collections isim alanınını kullanacağımızı using System.Collections; ile bildiriyoruz. Main fonksiyonumuzun içindeki ilk satırda, ArrayList aList= new ArrayList() , aList ismini verdiğimiz ArrayList sınıfından bir nesne oluşturuyoruz. aList nesnemizi oluşturduğunuz satırdan sonraki beş satırda ArrayList sınıfının Add() metodu ile aList adlı dizimize elemanları ekliyoruz.

Daha sonra aList diziminizin elemanlarını ForEach döngüsü ile tek tek ekrana yazdıyoruz. ArrayList sınıfındaki bir nesnenin elemanlarını tek tek silmek için Remove() metodunu kullanırız. Remove() metodu ile istediğimiz elemanı diziden atabiliriz. Biz de 8 ve 20 elemanlarını diziden attık. Son olarak dizimize 66 ve 20 elemanlarını ekleyip dizinin son halini ekrana yazdırdık.

C# dilinde normal diziler bildiğiniz gibi sadece aynı tipten verileri tutar. Ama ArrayList sınıfına ait dizilerimiz her türlü nesneyi aynı dizi içinde tutabilir. Yani aynı dizide int, float, ve string tiplerindeki değişkenleri depolama şansımız var. Mesela aşağıdaki kod C# dili kuralları çerçevesinde geçerli bir koddur:

ArrayList karmaList= new ArrayList(); // karmaList isimli ArrayList nesnesi oluşturalım.

karmaList.Add("Ahmet");
karmaList.Add(12);
karmaList.Add(true);
karmaList.Add(32.4f);
karmaList.Add('c');

Bu kod ile karmaList isimli ArrayList nesnemizin içinde string, int, bool, float ve char tiplerinden oluşan verileri aynı anda saklarız. ArrayList sınıfının bize sunduğu diğer bir güzel özellik ise tek bir komut ile ArrayList dizimizin içerisindeki elemanları ters çevirebilmemizdir. Ters çevirme işlemi için Reverse() metodu kullanılır. İsterseniz Reverse() metodunu ve ArrayList'lerde nasıl birden farklı türdeki elemanları kullanacağımızı bir örnekle inceleyelim:

using System;
using System.Collections; // ArrayList sınıfnı kullanmak için
// System.Collection isimalanını eklemeliyiz..

class CshaprNedirCom
{
static void Main(string[] args)
{
// karmaList isimli ArrayList nesnesi oluşturalım.
ArrayList karmaList= new ArrayList();

// karmaList'e değişik tipte elemanlar ekliyoruz.
karmaList.Add("Ali");
karmaList.Add(23);
karmaList.Add(false);
karmaList.Add(52.8d);
karmaList.Add('r');

// karmaList'in elemanlarını ekrana yazdırıyoruz:
Console.WriteLine("\t karmaList'in elemanları:");
foreach(object eleman in karmaList)
Console.WriteLine(eleman);

karmaList.Reverse(); // karmaList'imizi ters çeviriyoruz.

Console.WriteLine("\n ---> karmaList'in elemanları ve türleri <---");
foreach(object eleman in karmaList)
Console.WriteLine("Türü: {0,15} değeri: {1,7}",eleman.GetType(), eleman);

Console.ReadLine();
}
}

Yukarıdaki programda karmaList isimli ArrayList sınfından bir nesne oluşturduktan sonra onu değişik türlerden veriler ile doldurduk. Bu dizinin elemanlarını sıra ile foreach döngüsü yardımıyla ekrana yazdırdık. karmaList.Reverse() satırında ise dizimizi ters çevirdik. Son işimizde ise karmaList dizisinin elemanlarını ekrana tek tek yazdırırken aynı zamanda eleman.GetType( ) her elemanın türünü bulup yazdık.

Makalemizi ArrayList sınıfının temel metodlarının tablosunu vererek bitirmek isterim. Bu tablodaki metodların işimize yaracağı kanaatindeyim.

Add Bir nesneyi ArrayList'in sonuna ekler.
BinarySearch Sıralanmış bir ArrayList içinde bir nesneyi Binary search algoritması kullanarak arar.
Clear ArrayList'in tüm elemanlarını siler. Sıfırlar.
Contains Herhangi bir nesnenin ArrayList'in elemanı olup olmadığını kontrol eder.
Insert Dizinin sonuna değilde istediğimiz bir yerine indeksini belirterek eklememizi sağlar.
Remove Herhangi bir elemanı diziden siler.
Reverse Diziyi ters çevirir.
Sort ArrayList'i sıralar.
Makale:
C#'da ArrayList Sınıfının Kullanımı C#, Visual C# ve .NET Ahmet Faruk Nacaroğlu
 
Json dosyasinda turkce karakter sorunu var. Json dosyasini aliyorum ancak asp.nette goruntuleyemiyorum. Yukarida verdigim siteden nasil alabiliriz
 
Hocam c# tan anlamam ama işim düşünce birşeyler yaparım.

kitap adında bir sınıf yaz. kitap_adi , fiyati adında iki özelliği olsun.
sonra oluşturduğun kitap nesnelerini bir arraylistte yada list te sakla

Kod:
Kitap kitap1 = new Kitap("falan filan",25);
Kitap kitap2 = new Kitap("falan filan",40);

List<Kitap> kitaplar = new List<Kitap>();


//ekleme
kitaplar.Add( kitap1 );
kitaplar.Add( kitap2 );

// silme
kitaplar.Remove( kitap1 );

//index belirterek elkenirmi bilmiyorum
kitaplar[0] = new Kitap("filan falan","30");
 
Hocam dediginiz gibi yaptim oldu

Simdi de yukarudaki adreste verilen json dosyasindan bilgi almak istiyorum ancak olmuyor bir turlu
 
Nesne listesi kullanımı programin performansını düşürecektir. Örneğin; sadece iki özelliği olan bir sınıf için her nesne olusturulusunda gereksiz yere yapıcı fonksiyon çalıştırılmış oluyor. Yukarıda bazı arkadaşlarında ifade ettiği gibi struct listesi veya dizisi oluşturmak çok daha mantıklı olur.
 
Son düzenleme:
Hocam yukaridaki json dosyasinin icerigini web sayfasinda nasil goruntuleyebilirim

Eklentiler yuklu orneklere de baktim ancak goruntuleme islemi hep hata veriyor

Bu şekilde üstü kapalı sorular sorarsan cevap alma ihtimalin düşer. Soruyu yazarken biraz emek harca.
Örneklere bakmanın okuyanlar için bir önemi yok. Nasıl kullandığını görmek isterler.
Hangi aşamada hata aldığın pek anlaşılmıyor.
json içeriğini text olarak yada başka bir türde değişkene aktara bildin mi ?
convert ederken kullandığın kodlar neler ?
Hata mesajı nedir ?
Hatayı aldığın satırın altındaki ve üstündeki kodlar neler ?

Bende başkasının yapıp bana devrettiği bir uygulama. Bazı yerlerine arda sırada müdahale ediyorum.
Yapan kişi json işlemleri için newtonsoft eklentisini kurmuş.
sende "newtonsoft json" kelimelerini araştır.
 
string adres = "https://finans.truncgil.com/today.json";
WebRequest istek = HttpWebRequest.Create(adres);
WebResponse cevap;//www.bilisimogretmeni.com
cevap = istek.GetResponse();
StreamReader donenBilgiler = new StreamReader(cevap.GetResponseStream(), Encoding.GetEncoding("iso-8859-9"));
string bilgilerial = donenBilgiler.ReadToEnd();
RootObject datalist = JsonConvert.DeserializeObject<RootObject>(bilgilerial);
Response.Write(datalist.data[1].ToString());

datalist boş dönüyur. internetten tüm örnekleri irdeleim olmadı
 
json icerik bu

{"G\u00fcncelleme Tarihi":"2019-05-26 09:00:02","ABD DOLARI":{"Al\u0131\u015f":"6.0656","Sat\u0131\u015f":"6.0766","T\u00fcr":"D\u00f6viz"},"AVUSTRALYA DOLARI":{"Al\u0131\u015f":"4.1758","Sat\u0131\u015f":"4.2030","T\u00fcr":"D\u00f6viz"},"DAN\u0130MARKA KRONU":{"Al\u0131\u015f":"0.90730","Sat\u0131\u015f":"0.91175","T\u00fcr":"D\u00f6viz"},"EURO":{"Al\u0131\u015f":"6.7864","Sat\u0131\u015f":"6.7986","T\u00fcr":"D\u00f6viz"},"\u0130NG\u0130L\u0130Z STERL\u0130N\u0130":{"Al\u0131\u015f":"7.6801","Sat\u0131\u015f":"7.7202","T\u00fcr":"D\u00f6viz"},"\u0130SV\u0130\u00c7RE FRANGI":{"Al\u0131\u015f":"6.0357","Sat\u0131\u015f":"6.0744","T\u00fcr":"D\u00f6viz"},"\u0130SVE\u00c7 KRONU":{"Al\u0131\u015f":"0.63014","Sat\u0131\u015f":"0.63667","T\u00fcr":"D\u00f6viz"},"KANADA DOLARI":{"Al\u0131\u015f":"4.5017","Sat\u0131\u015f":"4.5220","T\u00fcr":"D\u00f6viz"},"KUVEYT D\u0130NARI":{"Al\u0131\u015f":"19.8275","Sat\u0131\u015f":"20.0869","T\u00fcr":"D\u00f6viz"},"NORVE\u00c7 KRONU":{"Al\u0131\u015f":"0.69340","Sat\u0131\u015f":"0.69806","T\u00fcr":"D\u00f6viz"},"SUUD\u0130 ARAB\u0130STAN R\u0130YAL\u0130":{"Al\u0131\u015f":"1.6174","Sat\u0131\u015f":"1.6203","T\u00fcr":"D\u00f6viz"},"JAPON YEN\u0130":{"Al\u0131\u015f":"5.5215","Sat\u0131\u015f":"5.5580","T\u00fcr":"D\u00f6viz"},"BULGAR LEVASI":{"Al\u0131\u015f":"3.4500","Sat\u0131\u015f":"3.4951","T\u00fcr":"D\u00f6viz"},"RUMEN LEY\u0130":{"Al\u0131\u015f":"1.4176","Sat\u0131\u015f":"1.4361","T\u00fcr":"D\u00f6viz"},"RUS RUBLES\u0130":{"Al\u0131\u015f":"0.09338","Sat\u0131\u015f":"0.09460","T\u00fcr":"D\u00f6viz"},"\u0130RAN R\u0130YAL\u0130":{"Al\u0131\u015f":"0.01436","Sat\u0131\u015f":"0.01455","T\u00fcr":"D\u00f6viz"},"\u00c7\u0130N YUANI":{"Al\u0131\u015f":"0.87372","Sat\u0131\u015f":"0.88515","T\u00fcr":"D\u00f6viz"},"PAK\u0130STAN RUP\u0130S\u0130":{"Al\u0131\u015f":"0.03974","Sat\u0131\u015f":"0.04026","T\u00fcr":"D\u00f6viz"},"KATAR R\u0130YAL\u0130":{"Al\u0131\u015f":"1.6553","Sat\u0131\u015f":"1.6769","T\u00fcr":"D\u00f6viz"},"\u00d6ZEL \u00c7EKME HAKKI (SDR) ":{"Al\u0131\u015f":"8.3790","Sat\u0131\u015f":[],"T\u00fcr":"D\u00f6viz"}}
 
string adres = "https://finans.truncgil.com/today.json";
WebRequest istek = HttpWebRequest.Create(adres);
WebResponse cevap;//www.bilisimogretmeni.com
cevap = istek.GetResponse();
StreamReader donenBilgiler = new StreamReader(cevap.GetResponseStream(), Encoding.GetEncoding("iso-8859-9"));
string bilgilerial = donenBilgiler.ReadToEnd();
RootObject datalist = JsonConvert.DeserializeObject<RootObject>(bilgilerial);
Response.Write(datalist.data[1].ToString());

datalist boş dönüyur. internetten tüm örnekleri irdeleim olmadı






Kod:
// orderInfo bir class
public class orderInfo
{
   public string Email { get; set; }
   public bool Active { get; set; }
   public DateTime CreatedDate { get; set; }
}



var orderInfoList = new List<orderInfo>();
string datard = wc.DownloadString(url + "//readorder.php");

orderInfoList = JsonConvert.DeserializeObject<List<orderInfo>>(datard);

bendeki kodlarda böyle kullanım var.
Birde breakpoint koyup adımlayarak ilerle. text dosya iniyor mu ?

Bu kodları inceleyin birde.
https://www.newtonsoft.com/json/help/html/DeserializeObject.htm
 
Dosya iniyor. Ancak datalist degeri null donuyor. Breakpointte dosyanin icerigi goruluyor

Sizin verdiginiz ornekte class degiskenleri neler olacak acaba diyorum oradami hata yapiyorum
 
Hocam vaktim olsa ilgilenirim fakat işlerimden dolayı yoğunum.
Siz c# projenizi paylaşın birde biz çalıştıralım müsait olunca tabi.
Ben pardus kullanıyorum. Öyle hemen açıp bakmam zor başka makinede bakıyorum genelde.
 
Geri
Üst