2011-01-29 23 views
0

私はRESTFull WCF Servicesの新機能で、Androidアプリからそれらを呼び出すのは新機能です。ここに私のWCFサービスがあります:jsonarrayのテキストは{my return values}の文字1で '['で始まらなければなりません。

[ServiceContract] 
    public interface IPeople 
    { 
     [OperationContract] 
     void DoWork(); 

     [WebGet(UriTemplate = "/GetPeople", 
      BodyStyle = WebMessageBodyStyle.WrappedRequest, 
      ResponseFormat = WebMessageFormat.Json, 
      RequestFormat = WebMessageFormat.Json)] 
     [OperationContract] 
     string GetPeople(); 
    } 

インタフェースの実装:

公共の文字列GetPeople(){ PeoplesEntities QE =新しいPeoplesEntities();

   var result = from q in qe.tPeople 
          select q; 


      int count = result.Count(); 
      int index = new Random().Next(count); 

      tPeople people = result.OrderBy(a=>a.ID).Skip(index).FirstOrDefault(); 

      // result.First().ToString(); 


      return people.FirstName + " - " + people.LastName; 
    } 

、これは私がアンドロイドサービスを通してそれを消費してる方法です:

試し{

 HttpGet request = new HttpGet(SERVICE_URI + "/GetPeople"); 
     request.setHeader("Accept", "application/json"); 
     request.setHeader("Content-type", "application/json"); 

     DefaultHttpClient httpClient = new DefaultHttpClient(); 
     HttpResponse response = httpClient.execute(request); 

     HttpEntity responseEntity = response.getEntity(); 

     // Read response data into buffer 
     char[] buffer = new char[(int)responseEntity.getContentLength()]; 
     InputStream stream = responseEntity.getContent(); 
     InputStreamReader reader = new InputStreamReader(stream); 
     reader.read(buffer); 
     stream.close(); 

     JSONArray plates = new JSONArray(new String(buffer)); 
       return new String(buffer); 



    } catch (Exception e) { 
     e.printStackTrace(); 
     return e.toString(); 
    } 
} 

私が手に例外が対象に記載されているものです。奇妙なのは、例外で返されると期待される値です。なぜそれが大括弧を期待しているのかわからない。

参考までに、私が使用したコードのほとんどは、オンラインの例から直接取ったものです。どんな助けでも大歓迎です。ありがとう。

+0

JSONとhttp認証は、私にアンドロイドの頭痛を引き起こしました。しかし、保存して、あなたはそれを通過します。 JSOn構造体についてわからない場合は、C#コードが何をしているのかを知るために、JSON構造体の作成方法を学び、それを読んでおくことをお勧めします。 – JonWillis

答えて

2

有効なJSON配列構文が含まれていない文字列からJSONArrayを作成しようとしています。 JSONArrayは、[item1, item2, item3....]という形式の文字列から作成できますが、文字列内の単一の項目:FirstName LastNameを返すだけです。

それは単にバッファを返すので、JSONArrayの呼び出しは無意味です。あなたはJSONデータを扱っていないので、JSONArray呼び出しは一切必要ありません。その行を削除するだけです。

関連する問題