私は自分のアプリケーション内の一つの方法を実装していますが、それは値の解析中に予期しない文字が検出されました。それは、Visual Studio OK罰金から実行したときのパスは「」、行0、位置0
ファイルシステムログに、このエラーを取得して、タスクスケジューラから実行したとき。例外:同期プロセスで例外が発生し、サプライヤのリストとメソッド名を取得するときにGetSuppliersが発生しました。例外はNewtonsoft.Json.JsonReaderExceptionです。値の解析中に予期しない文字が検出されました:Lineton 0、Newtonsoft.Json.Json.JsonTextReader.ParseValue()at Newtonsoft.Json.JsonTextReader.ReadInternal()Newtonsoft.Json.JsonTextReader Newtonsoft.Json.Serialization
私の方法
public string GetSuppliers()
{
SqlConnection connect = null; var spdb = new Syncdbsource();
try
{
var hsp = new hspservice.MyServiceSoapClient("MyServiceSoap");
var sdetails = hsp.GetSupplier();
List<SupplierDetails> supplierslist = null; var countSuppliers = 0;
if (!string.IsNullOrEmpty(sdetails))
{ supplierslist = JsonConvert.DeserializeObject<List<SupplierDetails>>(sdetails); }
return countSuppliers + "Inserted";
}
catch (SocketException)
{
System.Threading.Thread.Sleep(25000);
try
{
var output = GetSuppliers();
return output;
}
catch (Exception ex)
{
var exception = new Exception(@"Exception occurred in the Sync Process while fetching the suppliers list and method name is GetSuppliers.
The Exception is " + Environment.NewLine + ex.Message);
var message = exception.Message;
SendMail.InsertIssue(message.Replace("'", "''"));
return "-1";
}
}
catch (Exception excp)
{
var exception = new Exception(@"Exception occurred in the Sync Process while fetching the suppliers list and method name is GetSuppliers.
The Exception is " + Environment.NewLine + excp);
SendMail.InsertIssue(exception.ToString().Replace("'", "''"));
}
finally
{
if (connect != null && connect.State == ConnectionState.Open)
{ connect.Dispose(); }
}
return string.Empty;
}
JSON形式の文字列を返す
でNewtonsoft.Json.Serialization.JsonSerializerInternalReader.ReadForType(JsonReaderリーダー、JsonContract契約、ブールhasConverter、ブールInArrayバリ)で.Read()[{"SUPPLIERID": "10148"、 "SUPPLIERNAME": "ALLIED ELECTR TPSTC ":" 76113-2325 "、" TCSTE ":" TX "、" TCCTY ":" ONIX - LUD "、" TNAMC ":"アカウント受領可能 "、" TNAMB " ":" USA "、" PHONE ":" 616-365-9960 "、" FAX ":" 6163659895 "}、{" SUPPLIERID ":" 10159 "、" SUPPLIERNAME ":" ALRO STEEL CO。 "、" TNAMC " : "PO TOSTC ":" 48909-7882 "、" TCSTE ":" MI "、" TCCTY ":" USA "、" PHONE ":" 616-248-7687 " "FAX":" 6164522779「}]
public class SupplierDetails
{
private string _supplierCode;
private string _supplierName;
private string _internalCompanyId;
private string _address1;
private string _address2;
private string _city;
private string _state;
private string _country;
private string _zipCode;
private string _fax;
private string _phone;
public string SUPPLIERID
{
get {
return !string.IsNullOrEmpty(_supplierCode) ? _supplierCode : "-";
}
set
{
_supplierCode = value.Trim();
}
}
public string SUPPLIERNAME
{
get {
return !string.IsNullOrEmpty(_supplierName) ? _supplierName : "-";
}
set
{
_supplierName = value.Trim();
}
}
public string CompanyID
{
get {
return !string.IsNullOrEmpty(_internalCompanyId) ? _internalCompanyId : "-";
}
set
{
_internalCompanyId = value.Trim();
}
}
public string TNAMC
{
get {
return !string.IsNullOrEmpty(_address1) ? _address1 : "-";
}
set
{
_address1 = value.Trim();
}
}
public string TNAMB
{
get {
return !string.IsNullOrEmpty(_address2) ? _address2 : "-";
}
set
{
_address2 = value.Trim();
}
}
public string TNAME
{
get {
return !string.IsNullOrEmpty(_city) ? _city : "-";
}
set
{
_city = value.Trim();
}
}
public string TCSTE
{
get {
return !string.IsNullOrEmpty(_state) ? _state : "-";
}
set
{
_state = value.Trim();
}
}
public string TCCTY
{
get {
return !string.IsNullOrEmpty(_country) ? _country : "-";
}
set
{
_country = value.Trim();
}
}
public string TPSTC
{
get {
return !string.IsNullOrEmpty(_zipCode) ? _zipCode : "-";
}
set
{
_zipCode = value.Trim();
}
}
public string PHONE
{
get
{
return !string.IsNullOrEmpty(_phone) ? _phone : "-";
}
set
{
_phone = value.Trim();
}
}
public string FAX
{
get
{
return !string.IsNullOrEmpty(_fax) ? _fax : "-";
}
set
{
_fax = value.Trim();
}
}
public SupplierDetails()
{
//
// TODO: Add constructor logic here
//
}
}
GetSuppliersのコードを投稿できますか?生の反応は何ですか? –
申し訳ありませんJosh Knackは、Json文字列を取得するためのサードパーティサービスメソッドです。そのコードはありません。 –
返品のサンプルを投稿してください。また、SupplierDetailsのコードは参考になります。 –