List<HashMap> reList = new ArrayList<HashMap>();
for(int i=0;i<bjdList.size();i++){
Zqwl_yd_jdxx bjd = bjdList.get(i);
HashMap temp = new HashMap();
temp.put("id",bjd.getId());
temp.put("yd_number",bjd.getYd_number());
temp.put("status",bjd.getStatus());
reList.add(temp);
}
str = JSONValue.toJSONString(reList);
response.getWriter().write(str);
我写后台的接口,ios的程序员说必须标注每一个值得类型(string int 。。。)Android的程序员就不用?转正json返回之后不都是字符串了吗?为什么还要标注出int类型?
ringa_lee2017-04-18 09:17:18
약정이므로 양측의 합의가 필요합니다. 인터페이스 문서 설명이 있는 것이 가장 좋습니다. json은 단순한 문자열이지만 그 안의 값은 다른 유형이라고 합니다. json 데이터 유형(그러나 반드시 백엔드가 원래 제공하려고 했던 데이터 유형은 아닙니다. 예를 들어, float 유형에서는 double을 사용하여 얻습니다. 높은 정밀도가 필요하지 않은 값에는 차이가 없으며 iOS는 더 엄격하게 생각하고 정확한 값 유형을 결정하고 싶을 수도 있습니다. 이때 통일해야 합니다. 그렇지 않으면 앞으로 문제가 있는지 알 수 없습니다.
黄舟2017-04-18 09:17:18
실제로 JSON에는 유형이 있습니다. 확장된 ""는 문자열입니다. "value":"1"과 "value":1은 다릅니다.
물론 IOS에서는 표시해야 한다고 하지만 그렇지 않습니다. 그는 그것을 처리하고 싶지 않습니다. 그는 배경이 그것을 처리하고 Android가 당신을 위해 그것을 직접 처리할 수 있기를 바랍니다.
누가 옳고 그른지는 중요하지 않지만 누가 더 많은 일을 하려는 의지가 있는 사람인지는 중요하지 않습니다.
怪我咯2017-04-18 09:17:18
이 문제의 핵심은 JSON 형식의 정의를 정확하게 이해하는 것입니다
JSON의 제어 문자
{키-값 쌍 컨테이너의 시작(이름/값 쌍의 모음)
} 키- 값 쌍 컨테이너의 끝
[배열 컨테이너의 시작
] 배열 컨테이너의 끝
: 키-값 쌍 구분 기호
" 문자열의 시작 또는 끝
, 컨테이너 내부 구분 기호
JSON의 값 유형
공식 웹사이트의 원본 텍스트는 큰따옴표로 묶인 임의의 수의 유니코드 문자 모음입니다. string은 문자 '0' 또는 '9'로 시작하는 NSString 객체
번호로 OC에서 표현됩니다. 원래 공식 웹사이트에서는 사용되지 않는 8진수 및 16진수 형식을 제외하고 OC에서 NSNumber 객체로 표현됩니다. OC에서 NSDictionary로 표현되는 객체 유형
정렬된 값 목록(순서가 지정된 값 목록), 일반적으로 배열로 알려져 있으며 OC에서 NSArray로 표현
null null 객체, 빈 객체, OC의 성능 NSNull
bool true/false입니다. OC에는 Boolean 객체가 없으므로 OC의 성능은 NSNumber
입니다.
http://cocoa1024.com/2016/03/31/stackjson/