WCF 서비스를 작성한 다음 J2ME에서이 서비스를 사용한 후에. 내 WCF 서비스는 다음과 같습니다WCF의 올바른 데이터를 소비하고 얻는 방법 J2ME에서 Json을 반환합니다.
는IService:
[OperationContract]
[WebInvoke(Method = "GET", UriTemplate = "/GetByCity/Limit={limit}", BodyStyle = WebMessageBodyStyle.WrappedRequest,
RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)]
ItemList GetByCity(string limit);
Service.CS :
public ItemList GetByCity(string limit)
{
DataTable City = ds.Tables["City"];
var items = WithHTML(City, limit);
return new ItemList { Items = items };
}
public List<Item> WithHTML(DataTable City, string limit)
{
var items = (from d in City.AsEnumerable()
where d.Field<string>("strMainHin") != string.Empty
orderby d.Field<DateTime>("dtPosted")
select new Item
{
ItemId = d.Field<Int32>("intId").ToString(),
ItemLine = htmlEscapes(d.Field<string>("strMainHin")),
Photo = @"http://192.168.1.17:801/ImageById/" + d.Field<Int32>("intId") + ".jpg"
}).Take(Convert.ToInt32(limit)).ToList();
return items;
}
public string htmlEscape(string input)
{ var output = Regex.Replace(input, @"&#([0-9]*);", x => new String((char)int.Parse(x.Groups[1].Value), 1));
return output;
}
이제 URL http://192.168.1.17:803/Patrika/Service.svc/GetByCity/Limit=2
에서이 서비스의 출력은 다음과 같습니다
{"Items":[{"ItemLine":"डेढ़ करोड़ का क्रिकेट सट्टा पकड़ा","ItemId":"821745","Photo":"http:\/\/192.168.1.17:801\/ImageById\/821745.jpg"},{"ItemLine":"पार्किग का इंतजाम नहीं, तो जब्त होंगे वाहन","ItemId":"824837","Photo":"http:\/\/192.168.1.17:801\/ImageById\/824837.jpg"}]}
하지만이 링크를 통해 J2ME에서이 서비스를 소비 할 때 : 'HTTP ://192.168.1.17:803/Patrika/Service.svc/GetByCity/Limit=2 ' 는 유니 코드 또는 UTF-8 내가 J2ME에서 반환 responce 제공하고있다 :
{"ItemLine":"डेढ़ करोड़ का क�रिकेट सट�टा पकड़ा"}
모든 것이 잘 진행되고 있지만 일부 유니 코드의 문자열 만 잘못된 출력을 제공합니다. 는 내가 만 하나의 데이터를 보내려고 :
내가 JSON 개체에이 문자열을 가져다가 다음과 같이 라벨에 넣어 J2ME의 끝에서 다음{"ItemLine":"डेढ़ करोड़ का क्रिकेट सट्टा पकड़ा"}
:
Label l1=new Label("ItemLine");
this.component.add(l1);
하지만 출력을 나쁜 json 문자열 위와 동일합니다.
심각한 인코딩 문제가있는 좋은 JSON 스 니펫과 JSON 스 니펫 두 개를 보여줍니다. 그들이 어디에서 어떻게 정확히 잡혔는가? 이 두 위치 간에는 어떤 소프트웨어가 관련되어 있습니까? – Codo
실제로 내가 WCF로 끝났을 때 나는이 서비스를 J2ME에서 Eclipse 소프트웨어로 소비하려고 시도했다.이 서비스는 나에게 나쁜 스 니펫을 보여 주었다. WCf는 Visual Studio 2010에서 수행되었습니다. 및 J2ME은 Eclipse에서 수행 중입니다. –
두 JSON 코드 조각을 캡처 한 위치와 방법을 정확히 알려주십시오.클라이언트와 서버를 디버깅하여 디버거 밖으로 복사 한 경우 코드에서 애플리케이션을 중지 한 위치를 정확하게 알려주십시오. J2ME 응용 프로그램에 대한 자세한 정보를 제공해주십시오. JSON 데이터를 검색하고 구문 분석하는 데 사용하는 클래스는 무엇입니까? – Codo