2015-01-18 8 views
0

는 내가 가지고 asp.net 웹 페이지의 jquery.in 부분 프로젝트를 쓰기 :반환 JSON은

<div id="lookup"> 
         <div class="other"> 
          <div class="st"></div> 
          <ul class="videos"></ul> 
          <ul class="items"></ul> 

는 웹 서비스에서 내가 얻을이 코드를 작성 키워드 검색, 동영상 및 제품 컬렉션에서 검색 및 웹 서비스의 웹 page.part에게 반환하는 것은 : JQuery와의

public string GetSearchResult(string keyword, string urlCode) 
{ 
string test = [sample code]; 
string test2 = [sample code2]; 
StringBuilder sb = new StringBuilder(test); 
StringBuilder sb2 = new StringBuilder(test2); 
return @"[ 
      { 
       ""Key"": ""video"", 
       ""Value"": { 
        ""m_MaxCapacity"": " + sb.MaxCapacity + @", 
        ""Capacity"": " + sb.Capacity + @", 
        ""m_StringValue"": """ + test + @""", 
        ""m_currentThread"": 0 
       } 
      }, 
      { 
       ""Key"": ""product"", 
       ""Value"": { 
        ""m_MaxCapacity"": " + sb2.MaxCapacity + @", 
        ""Capacity"": " + sb2.Capacity + @", 
        ""m_StringValue"": """ + test2 + @""", 
        ""m_currentThread"": 0 
       } 
      }]"; 

} 

, 코드의 일부는 다음과 같습니다

function lookUp() { 

    n = $("#SearchBox").val().trim(), 
    r = "All"; 
    n.length >= 2 ? ($.ajax({ 
    url: ServiceUrl + "SearchService.asmx/GetSearchResult", 
    data: '{keyword: "' + n + '",urlCode:"' + r + '" }', 
    type: "POST", 
    contentType: "application/json; charset=utf-8", 
    timeout: 15000, 
    processData: !1, 
    success: function (o) { 
     o != null && (r == "All" ? (f.show(), u.show().html(o[2].Value.m_StringValue), ......... 

이 코드는 웹 서비스에서 비디오 카테고리 또는 제품 카테고리의 검색 결과를 가져와야하며 웹 페이지의 비디오 또는 항목 ul을 샘플 코드 또는 샘플 코드 2로 채워야합니다. 이 코드는 작동하지 않습니다. 각 m_StringValue 결정하고 싶습니다. 나는 웹 서비스에서 반환 된 텍스트와해서는 안된다 :

[{"Key":"video","Value": {"m_MaxCapacity":2147483647,"Capacity":64,"m_StringValue":"sample code","m_currentThread":0}}, 
{"Key":"product","Value": {"m_MaxCapacity":2147483647,"Capacity":55,"m_StringValue":"sample code 2","m_currentThread":0}}] 

나는 웹 서비스를 변경하는 방법을 모르겠다.

+0

이 링크 http://www.codeproject.com/Questions/ 시도 775153/Asp-net-Web-service-return-json-format-data – Kaptan

+0

감사합니다. 그러나 더 자세히 설명해 주시겠습니까? 귀하의 링크가 내 질문과 싫어. 나는 키, 가치, 용량, maxcapacity을 정의하고자합니다. –

+0

그것은 JacScript로 어디에서 결정할 것인가에 달려 있습니다. –

답변

0

JSON을 .Net 유형으로 비 직렬화한다고 가정합니다. JavascriptSerializer를 사용할 수 있습니다. 먼저 JSON에있는 필드 이름과 유형을 가진 클래스를 만든 다음 해당 유형으로 deserialize하십시오. 예 : 홈페이지()의 끝에 휴식과 keysAndCapacities를 검사하는 경우

using System.Collections.Generic; 
using System.Web.Script.Serialization; 

namespace loopy 
{ 
    class Program 
    { 
    static void Main(string[] args) 
    { 
     var ser = new JavaScriptSerializer(); 
     string websvcResult = CallWebService(); 
     var keysAndCapacities = ser.Deserialize<List<ServiceResultClass>>(websvcResult); 
    } 

    public static string CallWebService() 
    { 
     //Call web service here, this is just a mock of course. 
     return @"[ 
       { 
        ""Key"": ""products"", 
        ""Value"": { 
         ""m_MaxCapacity"": 2147483647, 
         ""Capacity"": 64, 
         ""m_StringValue"": ""<li>sample products or search results in products category</li>"", 
         ""m_currentThread"": 0 
        } 
       }, 
       { 
        ""Key"": ""news"", 
        ""Value"": { 
         ""m_MaxCapacity"": 2147483647, 
         ""Capacity"": 55, 
         ""m_StringValue"": ""<li class='noresult'>sample news or search results in news category</li>"", 
         ""m_currentThread"": 0 
        } 
       } 
      ]"; 
    } 
    } 

    public class ServiceResultClass 
    { 
    public string Key { get; set; } 
    public Capacities Value { get; set; } 
    } 

    public class Capacities 
    { 
    public long m_MaxCapacity { get; set; } 
    public string m_StringValue { get; set; } 
    } 
} 

, 당신이 얻을 :

enter image description here

+0

코드가 작동합니다. 고맙습니다. –