2016-09-05 15 views
-1

MVCアプリケーションでは、特定のサーバーからjson文字列を取得します。私はChromeでテスト目的のためにJSONを取得し、私はこのasp.net mvcのjsonに関する問題

{ 
ultima_prelucrare: "2013-11-25", 
ultima_declaratie: "2013-11-25", 
tva_la_incasare: [ ], 
tva: null, 
telefon: "0745040840", 
stare: "INREGISTRAT din data 04 Iulie 2007", 
radiata: false, 
numar_reg_com: "J40/12836/2007", 
meta: { 
updated_at: "2016-08-30T19:05:29.922418", 
last_changed_at: null 
}, 
judet: "Municipiul București", 
impozit_profit: null, 
impozit_micro: "2011-01-01", 
fax: null, 
denumire: "Infosystems4u S.R.L.", 
cod_postal: "61954", 
cif: "22052442", 
adresa: "Aleea Baiut, 9a, Bucuresti", 
act_autorizare: null, 
accize: null 
} 

とOKですを取得し、すべての 拳。 今すぐ自分のアプリに戻ってください。私はすでにこの構造を記述するモデルを持っています。このフィールドを持つアプリケーションに顧客を追加するためのビューがあります。 私のシナリオでは、 "cif"フィールドの値を指定してから、指定されたサーバーに対してWeb要求を行い、上記のjsonを取得した後でそれを望みます。 jsonが取得されますが、newtonsoftで非直列化しようとすると "["文字についての例外が発生します。ここで私は[引用符文字の間に囲まれていないが、それがサーバーからどのように来るのかということに気づいた。非常に短いオン 私のコードは次のようである(今のコードは、単にコントローラのデフォルトアクションの内部にあるが、私はこの後からに対処することができます):

 //call openapi.ro 
     string CompanyCUI = "22052442"; 
     // Create a new 'Uri' object with the specified Company ID string. 
     Uri myUri = new Uri("https://api.openapi.ro/api/companies/"+CompanyCUI+".json"); 
     // Create a new request to the above mentioned URL. 
     WebRequest myWebRequest = WebRequest.Create(myUri); 
     //Add the required header to request 
     myWebRequest.Headers.Add("x-api-key", "8P4RP_kwn71Nt8VG7boFmQb_7NsihyQxT_x7JGcGQkvPdXZH2Q"); 
     // Assign the response object of 'WebRequest' to a 'WebResponse' variable. 
     WebResponse myWebResponse = myWebRequest.GetResponse(); 
     // Read the response into a stream 
     var dataStream = myWebResponse.GetResponseStream(); 
     var reader = new StreamReader(dataStream); 
     var jsonResultString = reader.ReadToEnd(); 
     // Deserialize 
     var CompanyInfoData = Newtonsoft.Json.JsonConvert.DeserializeObject<CustomerModels>(jsonResultString); 
     //Feed the model with retrieved data 
     //... 
     //Save all 
     //... 

は、今私は、JSONの内容と間違っている可能性がものを見つけることを想定し、最終的にさらに進めるには、次のステップは、ユーザーがフォームの[保存]ボタンを押す前に、取得した値でフォームのeditboxコントロールを入力することです。私の気になるのは、フォーム内に2つのボタンが必要なことです.1つはWebリクエストを呼び出し、目的の値で塗りつぶし、もう1つは保存ボタンです。私は実際には1つのフォーム内の2つのボタンをどう扱うべきか分かりません。

は、任意のヒント

+0

あなたのJSONはjsonlint.comを検証しません。あなたのフィールドは二重引用符で囲んでください。\t "ultima_prelucrare": "2013-11-25"、0​​\t "ultima_declaratie": "2013-11-25"、.... – smoore4

+0

モデルを表示する ' CustomerModels' –

+0

は次のようになります:public class CustomerModels { // public string ultima_prelucrare {get;セット; } 公開ストリングultima_declaratie {get;セット; } 公開リスト tva_la_incasare {get;セット; } 公開ストリングtva {get;セット; } public string telefon {get;セット; } 公開ストリングaccize {get;セット; } } – net4u

答えて

0

提供JSONが構文上有効であるために、事前にありがとうございます。 CustomerModelsオブジェクトを宣言すると、tva_la_incasare属性は以下のような配列またはリストとして宣言されていることを確認してください:

public List<object> tva_la_incasare { get; set; } 
+0

ありがとうございました。 「人間の読書」の面では、私はVATを支払っていないので、そこにどのような情報があるのか​​を今考えています。私は、私がそこにいるかもしれないものを好奇心のために見るために付加価値税の支払人であることを知っている会社のIDを調べるだけです。 – net4u

関連する問題