簡體   English   中英

asmx往返json

[英]asmx round trip json

我正在調用一個asmx Web服務,該服務返回由json (msg.d)正確使用的json (msg.d) 當我嘗試將相同的json返回給asmx時,出現錯誤消息。 有什么明顯的我想念的東西嗎? ... msg.d是格式正確的對象數組。

調用storeGroupCategories(msg.d); 返回網絡服務錯誤...

{“ Message”:“無效的JSON原語:Baby + Books。”

調用storeGroupCategories(msg); 返回網絡服務錯誤...

{“消息”:“無效的JSON原語:d。”

網絡服務

public class kbo_inexcludecategories : WebService
{

    [WebMethod]
    public List<Group> GetIncludeExcludeJson()
    {
        var Groups =  new List<Group>();
        ShopAssistGroupHandler.getInExCategories(Groups);
        return Groups;
    }

    [WebMethod]
    public GroupGuid StoreGroupCategories(List<InExCategory> inExCategories)
    {
        var inExString = JsonConvert.SerializeObject(inExCategories);
        var returnGuid = DataHandler.SaveGroupJsonString(inExString);
        return new GroupGuid(returnGuid);
    }
}

關聯的json ...

var _url = "kbo-inexcludecategories.asmx/";
var _method = "GetIncludeExcludeJson";
var _jsonData = "{}";

function storeGroupCategories(groupCategories) {
    if(groupCategories != ""){
        showProgressBar("Storing Group Categories");
        getJsonData(_url, "StoreGroupCategories", groupCategories);
    }
}

function getGroupMatrix() {
    showProgressBar("Loading Group Categories");
    getJsonData(_url, _method, _jsonData);
}

function getJsonData(url, method, jsonData) {
    var myUrl = url + method;
    $.ajax({
        type: "POST",
        url: myUrl,
        data: jsonData,
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        async: false, //blocks window close
        success: onSuccess,
        error: onError
    });
}

function onSuccess(msg) {

    // Hide the fake progress indicator graphic.
    hideProgressBar("");
    if(msg.d.hasOwnProperty("Guid")) {
        saveGroupGuid(msg.d);
    }
    else {
        storeGroupCategories(msg.d);
        //showGroupAccordion(msg.d);
        //OpenAdvancedDialog();
    }
}

json樣本...

"{\"groups\":[{\"__type\":\"group\",\"id\":1488,\"name\":\"Baby Books\",\"categories\":
[{\"__type\":\"groupcategory\",\"id\":152,\"name\":\"Activity Books\",\"value\":\"Included\"},
{\"__type\":\"groupcategory\",\"id\":167,\"name\":\"Bedtime and Dreams\",\"value\":\"Excluded\"}

首先,我認為您需要像這樣傳遞json:

storeGroupCategories(msg.d)

但是在此函數中,您還需要為帖子創建有效的json參數,如下所示:

getJsonData(_url, "StoreGroupCategories", "{ inExCategories: " + groupCategories + " }");

我還將您的簽名更改為以下內容,因此組與您傳遞的參數匹配:

public GroupGuid StoreGroupCategories(List<InExCategory> groups)

如果在網頁方法中添加了一個斷點,您將確切看到所遇到的情況,並檢查它是否符合您的期望。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM