WCF Post 요청 json 본문을 올바르게 구문 분석 할 수 없습니다.

샘 나세르

다음 형식으로 내 RESTful API에 게시 요청이 전송됩니다.

헤더

Host: localhost:9475
Expect: 100-continue
Content-Type: application/json
Content-Length: 59

신체

{"query":"SOME STRING","variables":{"Foo":{"Data":"ABCD"}}}

요청 본문에서 데이터를 받으려고하므로 이것이 제가 시도한 것입니다.

public void foo(string query, object variables)

쿼리 매개 변수는 올바르게 구문 분석되고 있지만, 변수 매개 변수는 항상 얻는다 {object}값으로.

public void foo(string query, Dictionary<string, object> variables)

쿼리 매개 변수가 올바르게 해석되지 않고 변수 매개 변수는 키 / 값으로 사전이다.

public void foo(string query, VariablesObj variables)

여기서 VariablesObj

public class VariablesObj
{
   public object input_0 {get; set;}
}

쿼리 매개 변수를 정확하게 해석되는 상기 변수 파라미터는 하나의 속성 갖는다 INPUT_0 의 값을 {object}.

내가 뭘 잘못하고 있니? 또는 이것이 작동하기 위해 구현해야 할 것이 누락 되었습니까?

편집 1 :

@rene의 답변을 시도했고이 시나리오에서 효과가 있었지만 이제 내 문제는 내부의 개체 Foo가 클라이언트 측에서 Relay와 함께 GraphQl을 사용하는 것과 항상 같지 않고 변수를 보내야하는 개체로 변경한다는 것입니다. 그러나 일반적으로 내부에있는 하나의 개체입니다.

르네

적절한 매핑을 얻으려면 문자열 유형의 공용 속성 데이터가있는 유형의 공용 속성 Foo가있는 클래스가 있는지 확인하십시오.

이것이 공용 인터페이스 인 경우

public void foo(string query, MyVars variables)

다음과 같은 수업이 필요합니다.

public class MyVars 
{
     public DataVars Foo { get; set; }
}

public class DataVars 
{
    public string Data { get; set;}
}

DataContractJsonSerializer로 빠르게 테스트 할 수 있습니다 .

var json = @"{""query"":""SOME STRING"",""variables"":{""Foo"":{""Data"":""ABCD""}}}";

var ser = new DataContractJsonSerializer(typeof(wrapper));
var sr = new MemoryStream(Encoding.UTF8.GetBytes(json));
var mv = (wrapper) ser.ReadObject(sr);
mv.Dump();

메서드 시그니처의 스탠드 인으로 하나의 추가 래퍼 유형을 추가합니다.

   public class wrapper
   {
       public string query {get; set;}
       public MyVars variables { get;set;}
   }

LinqPad에서 실행하면 다음과 같은 결과가 나타납니다.

linqpad 결과

이것은 우리의 클래스 계층이 주어진 Json을 완전히 역 직렬화하는 데 정확하다는 것을 증명합니다.

변수가 모든 종류의 데이터 형태가 될 수있는 경우이를 포함하는 데 필요한만큼의 클래스를 정의하고 알려진 유형 목록을 사용하는 특수 생성자에이를 제공해야합니다 DataContractJsonSerializer Constructor (Type, IEnumerable<Type>). 이러한 클래스를 디자인하는 과정은 변경되지 않으며, 그 클래스 만 가질 수 있습니다. 데이터 KnownType계약 클래스에 속성을 추가하십시오 .

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

JSON 데이터를 올바르게 구문 분석 할 수 없습니다.

분류에서Dev

YAML을 올바르게 구문 분석 할 수 없습니다.

분류에서Dev

Kinvey 백엔드에 대한 대량 JSON POST 요청을 구문 분석 할 수 없습니다.

분류에서Dev

jquery-데이터를 올바르게 구문 분석 할 수 없습니다.

분류에서Dev

POST 요청 본문의 json을 .net-core의 클래스 인수에 바인딩 할 수 없습니다.

분류에서Dev

파일을 올바르게 구문 분석 할 수 없습니다. Glob이 작동하지 않음

분류에서Dev

Express를 사용하여 GET 요청을 구문 분석 할 수 없습니다.

분류에서Dev

자바 스크립트에서 JSON을 구문 분석 할 수 없습니다.

분류에서Dev

컨테이너의 ReadItemAsync가 Stack <T> 인스턴스를 올바르게 구문 분석 할 수 없습니다.

분류에서Dev

POST 요청 구문 분석-object ()에는 매개 변수가 없습니다.

분류에서Dev

Pandas로 JSON 파일을 구문 분석 할 수 없습니다.

분류에서Dev

ROBLOX Lua에서 JSON을 구문 분석 할 수 없습니다.

분류에서Dev

ROBLOX Lua에서 JSON을 구문 분석 할 수 없습니다.

분류에서Dev

JSON을 구문 분석 할 수 없습니다.

분류에서Dev

JSON을 Javascript 개체로 구문 분석 할 수 없습니다.

분류에서Dev

SwiftyJSON이 JSON 배열을 구문 분석 할 수 없습니다.

분류에서Dev

JSON REST API 응답을 구문 분석 할 수 없습니다.

분류에서Dev

JSON 응답을 구문 분석 할 수 없습니다.

분류에서Dev

Android는 단일 json 요소를 구문 분석 할 수 없습니다.

분류에서Dev

Openlayers를 사용하여 POST 요청을 올바르게 생성 할 수 없습니다.

분류에서Dev

중첩 요소가있는 json 문자열을 jquery로 구문 분석 할 수 없습니다.

분류에서Dev

JSON 객체 (Android)를 구문 분석 할 수 없습니다.

분류에서Dev

json 데이터를 구문 분석 할 수 없습니다.

분류에서Dev

SprayTest에서 json 본문으로 POST 요청을 어떻게 시뮬레이션 할 수 있습니까?

분류에서Dev

Nginx 및 Lua를 사용하여 POST 요청의 JSON 본문을 어떻게 조작 할 수 있습니까?

분류에서Dev

WordPress UI에서 json 문자열을 구문 분석 할 수 없습니다.

분류에서Dev

유효한 JSON 문자열을 구문 분석 할 수 없습니다.

분류에서Dev

키없이 JSON 파일을 어떻게 구문 분석 할 수 있습니까?

분류에서Dev

: 기호로 요소를 구문 분석 할 수 없습니다.

Related 관련 기사

  1. 1

    JSON 데이터를 올바르게 구문 분석 할 수 없습니다.

  2. 2

    YAML을 올바르게 구문 분석 할 수 없습니다.

  3. 3

    Kinvey 백엔드에 대한 대량 JSON POST 요청을 구문 분석 할 수 없습니다.

  4. 4

    jquery-데이터를 올바르게 구문 분석 할 수 없습니다.

  5. 5

    POST 요청 본문의 json을 .net-core의 클래스 인수에 바인딩 할 수 없습니다.

  6. 6

    파일을 올바르게 구문 분석 할 수 없습니다. Glob이 작동하지 않음

  7. 7

    Express를 사용하여 GET 요청을 구문 분석 할 수 없습니다.

  8. 8

    자바 스크립트에서 JSON을 구문 분석 할 수 없습니다.

  9. 9

    컨테이너의 ReadItemAsync가 Stack <T> 인스턴스를 올바르게 구문 분석 할 수 없습니다.

  10. 10

    POST 요청 구문 분석-object ()에는 매개 변수가 없습니다.

  11. 11

    Pandas로 JSON 파일을 구문 분석 할 수 없습니다.

  12. 12

    ROBLOX Lua에서 JSON을 구문 분석 할 수 없습니다.

  13. 13

    ROBLOX Lua에서 JSON을 구문 분석 할 수 없습니다.

  14. 14

    JSON을 구문 분석 할 수 없습니다.

  15. 15

    JSON을 Javascript 개체로 구문 분석 할 수 없습니다.

  16. 16

    SwiftyJSON이 JSON 배열을 구문 분석 할 수 없습니다.

  17. 17

    JSON REST API 응답을 구문 분석 할 수 없습니다.

  18. 18

    JSON 응답을 구문 분석 할 수 없습니다.

  19. 19

    Android는 단일 json 요소를 구문 분석 할 수 없습니다.

  20. 20

    Openlayers를 사용하여 POST 요청을 올바르게 생성 할 수 없습니다.

  21. 21

    중첩 요소가있는 json 문자열을 jquery로 구문 분석 할 수 없습니다.

  22. 22

    JSON 객체 (Android)를 구문 분석 할 수 없습니다.

  23. 23

    json 데이터를 구문 분석 할 수 없습니다.

  24. 24

    SprayTest에서 json 본문으로 POST 요청을 어떻게 시뮬레이션 할 수 있습니까?

  25. 25

    Nginx 및 Lua를 사용하여 POST 요청의 JSON 본문을 어떻게 조작 할 수 있습니까?

  26. 26

    WordPress UI에서 json 문자열을 구문 분석 할 수 없습니다.

  27. 27

    유효한 JSON 문자열을 구문 분석 할 수 없습니다.

  28. 28

    키없이 JSON 파일을 어떻게 구문 분석 할 수 있습니까?

  29. 29

    : 기호로 요소를 구문 분석 할 수 없습니다.

뜨겁다태그

보관