2011-12-21 2 views
0

이전 질문을 확인하면 Android의 경우 "\"또는 "/"와 관련되어 있으며 다른 경우에는 코드 구현이 작동하지 않는 이유가 무엇인지 알 수 있습니다 사람들의 버전이있었습니다.json, wcf 및 문자열의 분수

이제 광산이 작동하지 않는 이유를 알았습니다.

나는 데이터를 가져 오는 콘텐츠 관리 시스템에 액세스 할 수있는 live client을 개발 중입니다. 일반적인 수표 이외에, 그들은 사이트에 원하는 것을 게시 할 수 있습니다.

크기는 인치 단위로 게시됩니다. 예 : 5-1/2

내 것이고, 이것만으로도 내 Restful json이 엉망입니다. 예를 들어

, 1 eigth 현재, 나는이 '분수'를 잡을 그냥 내가 개발을 계속할 수 소수로를 켭니다 WCF 시점에서 문자열의 재 작성을하고있는 중이 야
1\\\/8 

이되었다. 하지만 나는 모든 결말에 대한 코드를 작성할 수없고, 안드로이드/이클립스는 실패한다. JSONArray json=new JSONArray(result);

이것에 대한 어떤 의견이라도 고맙게 생각한다.

데이브

답변

0

나는 이것에 대한 답변을 찾기 위해 광범위하게 검색하여 마침내 발견했습니다.

그것은 WCF REST 서비스입니다 :

저도 같은 문제가 발생하는 다른 사람을 위해 공유합니다. 동시에

학습 WCF와 안드로이드는 WCF에서 응답이 JSON 형식으로 직렬화 된 문자열을 받아야하는 나를 이끌었다.

이렇게하려면 .Net 객체, 배열 또는 기타 구문 분석을 위해 Android로 String으로 반환되기 전에 DataContractJsonSerializer를 거치는 것이 좋습니다. 이 같은

뭔가 :

Dim stream1 As MemoryStream = New MemoryStream 
Dim ser As DataContractJsonSerializer = New DataContractJsonSerializer(GetType(myType)) 
ser.WriteObject(stream1, myThing) 
Dim _json As String = Encoding.UTF8.GetString(stream1.ToArray()) 
stream1.Close() 
return _json 

잘못된.

당신의 객체, 배열 또는 무엇이든을 유지하고 대신에를 반환; WCF는 적절한 탈출을 처리 할 것입니다.

(이 VB이다);

IService :

<OperationContract()> _ 
<WebGet(BodyStyle:=WebMessageBodyStyle.WrappedRequest, RequestFormat:=WebMessageFormat.Json, ResponseFormat:=WebMessageFormat.Json, UriTemplate:="/MyKit/{AccountID}")> _ 
Function GetKit(ByVal AccountID As String) As MyKit 

서비스 : 효과적으로 WCF에서 '사전 탈출'의 데이터를 안드로이드 JSON으로 보내는 DataContractJsonSerializer를 사용

Public Function GetKit(ByVal AccountID As String) As MyKit Implements IService1.GetKit 

    Dim allKit As New MyKit() //Your object 
    objDal.CommandText = 'run some sql here - or whatever 

    Using dr As SqlDataReader = "blah" 

    //populate your object 

    End Using 

    Return allKit //return the object, not the string representation of it 

End Function 

.안드로이드에 도착하면 Json 파서는 데이터를 빠져 나오기 때문에 처리 할 수 ​​없다.

0
반사에

하고, 추가 조사는, 안 문제를 일으키는 이스케이프 분수입니다. 더 근본적인 것입니다. 질문을 닫습니다.