2012-04-06 2 views
4

MVC4 (베타) 문제에 대한 질문이 있습니다. 지금 당분간 어려움을 겪고 있습니다. 문제는 내 webapi에 대한 개체 이름이 추가 된 json을 만들고 싶다는 것입니다. 수신자 측에서 필요로하는대로 json을 작성해야합니다. 내. NET/MVC 지식이 제한되어 있으므로 나와 함께하시기 바랍니다. 제목에 대해 검색을 시도했지만 MVC4가 아직 베타 버전이므로이 주제에 대한 좋은 정보를 찾기가 어렵습니다.MVC4 : Json에 객체 이름을 포함하십시오.

나는 이미 내 솔루션에 JSON.NET 포매터를 가져 왔습니다, 그러나 이것은

지금 MVC4에서 생성 된 JSON 개체 이름을 추가하지 않습니다

[{"ID":36,"Name":"Test3","Description":"Description Test3"},{"ID": 37,"Name": "Test4","Description": "Description Test4"}] 

그리고 내가 좋아하는 것 json은 다음과 같이 표시합니다.

{"Goal":[{"ID":36,"Name":"Test3","Description":"Description Test3"},{"ID": 37,"Name": "Test4","Description": "Description Test4"}]} 

그래서 json에 포함될 개체 이름 (목표)을 좋아합니다.

내가 이것을 사용하고 내 API를 컨트롤러의 코드는 다음과 같습니다

StoreDBContext db = new StoreDBContext(); 

    // 
    // GET /api/goals 
    public IQueryable<Goals> Get() 
    { 
     return db.Goals; 
    } 

내가 개체 이름을 추가 할 곳을 통해 루프를 필요로 가정,하지만 난 어떻게 ... 바라건대 사람이 할 수있는 확실하지 않다 나를 도와주세요! 이 같은

+2

유효하지 않은 JSON입니다. – SLaks

+0

내 게시물을 편집했습니다. 당신은 json이 유효하지 않다는 것이 옳았습니다. 이제 (http://jsonlint.com/을 통해 검증되었습니다.) 나는 그것이 이런 식으로하는 것을 의미했습니다. – Hugo

+0

내 질문의 답을 적어주세요 [여기 링크 설명을 입력합니다] [1] [1] : http://stackoverflow.com/questions/31323528/json-error-in-retrieving- SQL-server-in-mvc4에서 데이터 –

답변

3

반환 뭔가 :

new { Goal = db.Goals().AsEnumerable().ToList() } 

당신은 개체에없는 속성과 물건을 추가하기 위해 익명 객체를 사용할 수 있습니다.

JSON.NET에 대해 사용자 정의 변환기를 작성할 수도 있지만 제대로 직렬화를 원하지는 않지만 출력의 비 직렬화에 신경 쓰지 않는다면 위의 해결 방법이 적용됩니다.

+0

답장을 보내 주셔서 감사합니다! 잠시 동안 비 직렬화에 대해 신경 쓰지 않아도되므로이 솔루션으로 충분할 것입니다. 그러나 db 개체 (StoreDBContext)에는 Get 메서드가 구현되어 있지 않은 것 같습니다. 그러나 위의 명령을 반환 할 때 다음 오류가 발생합니다. 'StoreDBContext'에 'StoreDBContext'유형의 첫 번째 인수를 허용하는 '가져 오기'및 확장 메서드가없는 'Get'에 대한 정의가 없습니다 ( 여기에 뭔가가 없습니까? – Hugo

+0

@Hugo 죄송합니다. 코드 샘플을 잘못 읽고 코드를 업데이트했습니다. –

+0

업데이트 해 주셔서 감사합니다. 이제 다음 오류가 발생합니다. 암시 적으로 'System.Collections.Generic.IEnumerable '형식을 'System.Linq.IQueryable '형식으로 변환합니다. 명시 적 변환이 있습니다 (캐스트가 누락 되었습니까?) 코드를 가지고 있지만 작동시킬 수는 없습니다 ... – Hugo

관련 문제