JSON 파일 내에서 주석을 사용할 수 있습니까? 그렇다면 어떻게?
//comments
Sublime Text 구성 파일의 특정 사용 사례에 대해 괜찮은지 궁금한 경우 대답은 예입니다 (버전 2 기준). 숭고한 텍스트는 적어도 그것에 대해 불평하지 않지만 {"__comment": ...}
콘솔에서는 예상치 못한 필드이기 때문에 불평 합니다.
JSON 파일 내에서 주석을 사용할 수 있습니까? 그렇다면 어떻게?
//comments
Sublime Text 구성 파일의 특정 사용 사례에 대해 괜찮은지 궁금한 경우 대답은 예입니다 (버전 2 기준). 숭고한 텍스트는 적어도 그것에 대해 불평하지 않지만 {"__comment": ...}
콘솔에서는 예상치 못한 필드이기 때문에 불평 합니다.
답변:
아니.
JSON은 모두 데이터 여야하며 주석을 포함하면 데이터이기도합니다.
"_comment"
JSON 데이터를 사용하는 앱에서 무시되는 지정된 데이터 요소 (또는 무언가)를 가질 수 있습니다.
JSON을 생성 / 수신하는 프로세스에 JSON 데이터가 무엇인지 또는 적어도 구조가 무엇인지 알고 있어야하기 때문에 주석을 작성하는 것이 좋습니다.
그러나 당신이 결정한 경우 :
{
"_comment": "comment text goes here...",
"glossary": {
"title": "example glossary",
"GlossDiv": {
"title": "S",
"GlossList": {
"GlossEntry": {
"ID": "SGML",
"SortAs": "SGML",
"GlossTerm": "Standard Generalized Markup Language",
"Acronym": "SGML",
"Abbrev": "ISO 8879:1986",
"GlossDef": {
"para": "A meta-markup language, used to create markup languages such as DocBook.",
"GlossSeeAlso": ["GML", "XML"]
},
"GlossSee": "markup"
}
}
}
}
}
"__comment":"comment text goes here...",
Accronym
및 Abbrev
속성 에 대한 별도의 의견을 원한다면 어떨까요? 나는이 패턴을 전에 사용했지만 그렇게 할 수 없기 때문에 중단되었습니다. 해킹입니다. 어쩌면 내가 __comment__
대신 속성 이름을 붙인다면 . 그것은 여전히 해킹이지만 "__comment__Abbrev"입니다. 그러나 모든 제작자에 대해 언급하겠습니다
아니요 , 양식의 주석 //…
또는 /*…*/
JSON에서는 허용되지 않습니다. 이 답변은 다음을 기반으로합니다.
application/json
JSON (JavaScript Object Notation) 의 미디어 유형원하는 경우 의견을 포함하십시오. 파싱하거나 전송하기 전에 축소기로 스트리핑하십시오.
방금 JSON 블록에서 주석과 공백을 제거하고 구문 분석 할 수있는 유효한 JSON으로 만드는 JSON.minify () 를 릴리스 했습니다. 따라서 다음과 같이 사용할 수 있습니다.
JSON.parse(JSON.minify(my_str));
내가 그것을 발표했을 때, 나는 사람들이 그것에 대한 아이디어에 동의하지 않는 것에 대한 반발을 일으켰다. 그래서 의견이 JSON에서 의미가있는 이유에 대한 포괄적 인 블로그 게시물을 작성하기로 결정했다 . JSON 작성자의 주목할만한 주석이 포함되어 있습니다.
주석을 추가하려는 구성 파일을 유지하기 위해 JSON을 사용한다고 가정하십시오. 계속해서 당신이 좋아하는 모든 의견을 삽입하십시오. 그런 다음 JSON 파서를 전달하기 전에 JSMin을 통해 파이프하십시오. - 더글러스 크록 포드, 2012
JSON.minify () 가 유용한 이유에 동의하지 않는 사람들에게 도움이 되기를 바랍니다 .
주석은 의도적으로 JSON에서 제거되었습니다.
사람들이 구문 분석 지시문을 유지하기 위해 주석을 사용하고 상호 운용성을 파괴하는 사례를 보았 기 때문에 JSON에서 주석을 제거했습니다. 나는 의견이 없기 때문에 어떤 사람들은 슬프다는 것을 알고 있지만 그렇게해서는 안됩니다.
주석을 추가하려는 구성 파일을 유지하기 위해 JSON을 사용한다고 가정하십시오. 계속해서 당신이 좋아하는 모든 의견을 삽입하십시오. 그런 다음 JSON 파서를 전달하기 전에 JSMin을 통해 파이프하십시오.
면책 조항 : 귀하의 보증은 무효입니다
지적 된 바와 같이,이 핵은 사양의 구현을 이용한다. 모든 JSON 파서가 이러한 종류의 JSON을 이해하는 것은 아닙니다. 특히 스트리밍 파서는 질식합니다.
흥미로운 호기심이지만 실제로는 아무것도 사용해서는 안됩니다 . 아래는 원래 답변입니다.
파싱에 영향을 미치지 않는 JSON 파일에 주석을 넣거나 어떤 식 으로든 표현되는 데이터를 변경할 수있는 약간의 해킹을 발견했습니다.
객체 리터럴을 선언 할 때 동일한 키로 두 개의 값을 지정할 수 있으며 마지막 값이 우선합니다. 믿거 나 말거나 JSON 파서는 같은 방식으로 작동합니다. 따라서이를 사용하여 구문 분석 된 객체 표현에 표시되지 않는 소스 JSON에서 주석을 작성할 수 있습니다.
({a: 1, a: 2});
// => Object {a: 2}
Object.keys(JSON.parse('{"a": 1, "a": 2}')).length;
// => 1
이 기술을 적용하면 주석 처리 된 JSON 파일은 다음과 같습니다.
{
"api_host" : "The hostname of your API server. You may also specify the port.",
"api_host" : "hodorhodor.com",
"retry_interval" : "The interval in seconds between retrying failed API calls",
"retry_interval" : 10,
"auth_token" : "The authentication token. It is available in your developer dashboard under 'Settings'",
"auth_token" : "5ad0eb93697215bc0d48a7b69aa6fb8b",
"favorite_numbers": "An array containing my all-time favorite numbers",
"favorite_numbers": [19, 13, 53]
}
위의 코드는 유효한 JSON 입니다. 구문 분석하면 다음과 같은 객체가 표시됩니다.
{
"api_host": "hodorhodor.com",
"retry_interval": 10,
"auth_token": "5ad0eb93697215bc0d48a7b69aa6fb8b",
"favorite_numbers": [19,13,53]
}
즉, 주석의 흔적이 없으며 이상한 부작용이 없습니다.
행복한 해킹!
JSON은 주석을 지원하지 않습니다. 주석이 필요한 구성 파일에도 사용되지 않았습니다.
Hjson은 사람을위한 구성 파일 형식입니다. 편안한 구문, 적은 실수, 더 많은 주석.
JavaScript, Java, Python, PHP, Rust, Go, Ruby 및 C # 라이브러리는 hjson.org 를 참조하십시오 .
YAML 사용을 고려하십시오. 거의 JSON의 수퍼 세트 (거의 모든 유효한 JSON은 유효한 YAML 임)이며 주석을 허용합니다.
yaml
라이브러리는 Python과 함께 제공되지 않습니다.
일부 파서는 C ++ 스타일의 주석을 지원하지만 주석은 공식 표준이 아닙니다. 내가 사용하는 것은 JsonCpp 입니다. 예제에는 다음이 있습니다.
// Configuration options
{
// Default encoding for text
"encoding" : "UTF-8",
// Plug-ins loaded at start-up
"plug-ins" : [
"python",
"c++",
"ruby"
],
// Tab indent size
"indent" : { "length" : 3, "use_space": true }
}
jsonlint 는 이것을 검증하지 않습니다. 따라서 주석은 파서 고유의 확장이며 표준이 아닙니다.
또 다른 파서는 JSON5입니다. 입니다.
JSON TOML 의 대안 입니다.
다른 대안은 jsonc 입니다.
JSON 스키마를 작성해야합니다대신 를 합니다. JSON 스키마는 현재 제안 된 인터넷 초안 사양입니다. 문서 외에도 스키마를 사용하여 JSON 데이터를 검증 할 수도 있습니다.
예:
{
"description":"A person",
"type":"object",
"properties":
{
"name":
{
"type":"string"
},
"age":
{
"type":"integer",
"maximum":125
}
}
}
설명 스키마 속성 을 사용하여 문서를 제공 할 수 있습니다 .
Jackson 을 JSON 파서로 사용하는 경우 다음과 같이 주석을 허용 할 수 있습니다.
ObjectMapper mapper = new ObjectMapper().configure(Feature.ALLOW_COMMENTS, true);
그러면 다음과 같은 의견을 가질 수 있습니다.
{
key: "value" // Comment
}
또한 다음과 같이 #
설정 하여 주석을 작성할 수 있습니다 .
mapper.configure(Feature.ALLOW_YAML_COMMENTS, true);
그러나 일반적으로 (앞서 답변 한대로) 사양에서는 주석을 허용하지 않습니다.
다음은 Google Firebase 설명서 에서 JSON에 주석을 달 수있는 내용입니다.
{
"//": "Some browsers will use this to enable push notifications.",
"//": "It is the same for all projects, this is not your project's sender ID",
"gcm_sender_id": "1234567890"
}
아니요 . JSON은 주석을 지원하는 데 사용되었지만 표준에서 남용되어 제거되었습니다.
JSON 제작자 :
사람들이 구문 분석 지시문을 유지하기 위해 주석을 사용하고 상호 운용성을 파괴하는 사례를 보았 기 때문에 JSON에서 주석을 제거했습니다. 나는 의견이 없기 때문에 어떤 사람들은 슬프다는 것을 알고 있지만 그렇게해서는 안됩니다. - 더글러스 크록 포드, 2012
공식 JSON 사이트는 JSON.org에 있습니다. JSON은 ECMA International 에서 표준 으로 정의 합니다. 표준을 수정하는 탄원 절차는 항상 있습니다. 몇 가지 이유로 주석이 JSON 표준에 추가되지는 않습니다.
JSON 설계는 XML에 대한 리버스 엔지니어링 (휴먼 파싱) 대안입니다. 주석이 불필요 할 정도로 단순화되었습니다. 마크 업 언어도 아닙니다. 목표는 안정성과 상호 운용성입니다.
객체 지향의 "has-a"관계를 이해하는 사람이라면 모든 JSON 구조를 이해할 수 있습니다. 거의 보편적 인 데이터 구조 인 노드 태그 (키 / 값 쌍)가있는 DAG (directed acyclic graph) 일뿐입니다.
필요한 주석은 "// 이것은 DAG 태그"일 수 있습니다. 키 이름은 필요에 따라 정보를 제공 할 수 있으므로 임의의 의미를 정의 할 수 있습니다.
모든 플랫폼에서 단 몇 줄의 코드로 JSON을 구문 분석 할 수 있습니다. XML에는 많은 플랫폼에서 사용할 수없는 복잡한 OO 라이브러리가 필요합니다.
주석은 JSON의 상호 운용성을 떨어 뜨립니다. 실제로 필요한 것은 마크 업 언어 (XML)가 아니라면 추가 할 것이 없으며 지속되는 데이터가 쉽게 구문 분석되는지는 신경 쓰지 않습니다.
그러나 JSON 제작자가 관찰 한 것처럼 주석에 대한 JS 파이프 라인 지원은 항상있었습니다.
계속해서 당신이 좋아하는 모든 의견을 삽입하십시오. 그런 다음 JSON 파서를 전달하기 전에 JSMin을 통해 파이프하십시오. - 더글러스 크록 포드, 2012
일부 프로그램에서 JSON 문자열 인 텍스트 파일을 읽을 경우 사용하기 전에 C 또는 C ++ 스타일 주석을 제거하는 것이 얼마나 어려울까요?
답 : 하나의 라이너 일 것입니다. 그렇게하면 JSON 파일을 구성 파일로 사용할 수 있습니다.
ASP.NET과 함께 Newtonsoft.Json 라이브러리를 사용하여 읽고 / 직렬화하는 경우 JSON 컨텐츠에서 주석을 사용할 수 있습니다.
// "이름": "문자열"
// "id": int
또는
/* 이것은
주석 예 * /
PS : 한 줄 주석은 6 개 이상의 Newtonsoft Json 버전에서만 지원됩니다.
기본적으로 생각할 수없는 사람들을위한 추가 참고 사항 : 사용할 내가 만든 ASP.NET 웹 응용 프로그램의 기본 설정에는 JSON 형식을 사용합니다. 파일을 읽고 Newtonsoft 라이브러리를 사용하여 설정 객체로 변환하고 필요할 때 사용합니다.
JSON 파일 자체의 각 개별 설정에 대한 의견을 작성하는 것을 선호하며 사용하는 라이브러리가 정상인 한 JSON 형식의 무결성에 대해서는 신경 쓰지 않습니다.
나는 이것이 별도의 'settings.README'파일을 생성하고 그 설정을 설명하는 것보다 '사용하기 쉽고 이해하기 쉬운'방법이라고 생각합니다.
이런 종류의 사용법에 문제가있는 경우 죄송합니다. 지니가 램프를 벗어났습니다. 사람들은 JSON 형식에 대한 다른 사용법을 찾을 수 있으며 그것에 대해 할 수있는 일은 없습니다.
JSON의 기본 개념은 응용 프로그램간에 간단한 데이터 교환을 제공하는 것입니다. 이들은 일반적으로 웹 기반이며 언어는 JavaScript입니다.
실제로 주석을 허용하지는 않지만 데이터에서 이름 / 값 쌍 중 하나 인 주석을 전달하면 분명히 작동하지만 데이터는 구문 분석 코드에서 특별히 무시하거나 처리해야합니다.
그러나 JSON 파일이 전통적인 의미로 주석을 포함해야한다는 의도는 아닙니다. 단지 데이터 여야합니다.
자세한 내용 은 JSON 웹 사이트 를 참조하십시오.
구성 파일에 대해이 문제가 발생했습니다. XML (상세, 그래픽, 추악한, 읽기 어려운) 또는 "ini"형식 (계층 구조, 실제 표준 등 없음) 또는 Java "속성"형식 (.ini 등) 을 사용하고 싶지 않습니다.
JSON은 할 수있는 모든 것을 할 수 있지만 덜 장황하고 사람이 읽을 수있는 방식입니다. 파서는 많은 언어로 쉽고 편재합니다. 데이터 트리 일뿐입니다. 그러나 대역 외 주석은 종종 "기본"구성 등을 문서화해야합니다. 구성은 "전체 문서"가 될 필요는 없지만 필요할 때 사람이 읽을 수있는 저장된 데이터 트리입니다.
"#": "comment"
"유효한"JSON에 대해 사용할 수 있다고 생각 합니다.
JSON은 기본적으로 주석을 지원하지 않지만 주석을 무시하고 응용 프로그램에서 JSON 데이터를 처리하는 방법을 안내하는 데 사용하지 않는 한 주석을 제거하기 위해 자체 디코더 또는 최소한 전처리기를 만들 수 있습니다. ).
JSON에는 주석이 없습니다. JSON 인코더는 주석을 출력해서는 안됩니다 (MUST NOT). JSON 디코더는 주석을 수락하고 무시할 수 있습니다.
주석은 의미있는 것을 전달하는 데 사용해서는 안됩니다. 이것이 JSON입니다.
JSON 라이브러리에 따라 다릅니다. Json.NET 은 JavaScript 스타일의 주석을 지원합니다 /* commment */
.
다른 스택 오버플로 질문을 참조하십시오 .
JSON은 구성 파일 및 기타 로컬 사용에 유비쿼터스하고 XML보다 훨씬 단순하기 때문에 많은 의미가 있습니다.
사람들이 데이터를 통신 할 때 JSON에 주석을 달지 않는 강력한 이유가 있다면 (유효한지 여부와 상관없이) JSON을 두 가지로 나눌 수 있습니다.
JSON-DOC는 주석을 허용하며 공백 처리와 같은 사소한 차이점이있을 수 있습니다. 파서는 한 스펙에서 다른 스펙으로 쉽게 변환 할 수 있습니다.
이 문제에 대해 Douglas Crockford 의 발언 과 관련하여 (@Artur Czajka가 참조)
주석을 추가하려는 구성 파일을 유지하기 위해 JSON을 사용한다고 가정하십시오. 계속해서 당신이 좋아하는 모든 의견을 삽입하십시오. 그런 다음 JSON 파서를 전달하기 전에 JSMin을 통해 파이프하십시오.
우리는 일반적인 구성 파일 문제 (cross language / platform)에 대해 이야기하고 있으며 JS 특정 유틸리티로 응답하고 있습니다!
JSON 특정 축소는 모든 언어로 구현할 수 있지만 표준화하면 모든 언어와 플랫폼의 파서 전체에서 유비쿼터스가되므로 사람들은 유용한 사용 사례가 있기 때문에 기능이 부족하여 시간을 낭비하지 않고 문제를 찾습니다. 온라인 포럼, 사람들에게 나쁜 생각을 말하거나 텍스트 파일에서 주석 제거를 쉽게 구현할 수 있다고 제안합니다.
다른 문제는 상호 운용성입니다. 라이브러리 또는 API 또는 이와 연관된 구성 또는 데이터 파일이있는 모든 종류의 서브 시스템이 있다고 가정하십시오. 이 하위 시스템은 다른 언어로 액세스해야합니다. 그런 다음 사람들에게 알려주십시오. 그런데 파서로 전달하기 전에 JSON 파일에서 주석을 제거하는 것을 잊지 마십시오!
JSON5 를 사용하는 경우 주석을 포함 할 수 있습니다.
JSON5는 사람이 손으로 직접 작성하고 관리 할 수 있도록하기 위해 제안 된 JSON 확장 입니다. ECMAScript 5에서 직접 최소한의 구문 기능을 추가하여이를 수행합니다.
Dojo Toolkit JavaScript 툴킷 (최소 버전 1.4 이상)을 사용하면 JSON에 주석을 포함 할 수 있습니다. 주석은 /* */
형식 이 될 수 있습니다 . Dojo 툴킷은 dojo.xhrGet()
호출을 통해 JSON을 사용합니다 .
다른 JavaScript 툴킷도 비슷하게 작동 할 수 있습니다.
최종 옵션을 선택하기 전에 대체 데이터 구조 (또는 데이터 목록)를 실험 할 때 유용합니다.
dojo.xhrGet()
입니다.
JSON은 프레임 프로토콜이 아닙니다 . 그것은이다 언어를 자유 형식 . 따라서 주석의 형식은 JSON에 대해 정의되지 않았습니다.
많은 사람들이 제안했듯이 중복 키 또는 _comment
사용할 수 있는 특정 키와 같은 몇 가지 트릭 이 있습니다. 그것은 당신에게 달려 있습니다.
당신은 수 에 의견이 JSONP ,하지만 순수한 JSON한다. 방금 Highcharts 에서이 예제를 사용하여 프로그램을 작성하려고 한 시간을 보냈습니다. http://www.highcharts.com/samples/data/jsonp.php?filename=aapl-c.json&callback=?
링크를 따라 가면
?(/* AAPL historical OHLC data from the Google Finance API */
[
/* May 2006 */
[1147651200000,67.79],
[1147737600000,64.98],
...
[1368057600000,456.77],
[1368144000000,452.97]
]);
로컬 폴더에 비슷한 파일이 있었기 때문에 동일한 출처 정책에 문제가 없었 으므로 순수한 JSON을 사용하기로 결정했으며 물론 $.getJSON
주석 때문에 자동으로 실패했습니다.
결국 방금 위의 주소로 수동 HTTP 요청을 보냈고 text/javascript
JSONP는 순수한 JavaScript를 반환하므로 콘텐츠 유형이 있다는 것을 깨달았습니다 . 이 경우 의견 이 허용 됩니다. 그러나 내 응용 프로그램은 content-type을 반환 application/json
했으므로 주석을 제거해야했습니다.
이것은 "당신 이 할 수있는" 질문입니다. 그리고 여기에 "예" 있습니다.
아니요, 중복 채널 멤버를 사용하여 사이드 채널 데이터를 JSON 인코딩에 넣지 않아야합니다. RFC에서 "객체 내의 이름은 고유해야합니다" 를 참조하십시오. .
그리고 네, JSON 주위 에 주석 을 삽입 하여 구문 분석 할 수 있습니다.
그러나 임의의 사이드 채널 데이터를 유효한 JSON에 삽입하고 추출하는 방법을 원한다면 여기에 답이 있습니다. JSON 인코딩에서 고유하지 않은 데이터 표현을 활용합니다. 이것은 허용 * "전이나 여섯 개 구조 문자의 후 허용되는 공백"의 RFC 섹션 두.
* RFC는 문자열, 숫자, "false", "true"및 "null"을 명시 적으로 언급하지 않고 "6 개의 구조 문자 앞뒤에 공백이 허용됨"만 표시합니다. 이 구현은 모든 구현에서 무시됩니다.
먼저 JSON을 축소하여 JSON을 정규화하십시오.
$jsonMin = json_encode(json_decode($json));
그런 다음 주석을 바이너리로 인코딩하십시오.
$hex = unpack('H*', $comment);
$commentBinary = base_convert($hex[1], 16, 2);
그런 다음 바이너리를 훔치십시오.
$steg = str_replace('0', ' ', $commentBinary);
$steg = str_replace('1', "\t", $steg);
출력은 다음과 같습니다.
$jsonWithComment = $steg . $jsonMin;
면책 조항 : 이건 실로
실제로 의견을 추가하고 사양 내에 머무를 수있는 방법이 있습니다 (추가 파서가 필요 없음). 그래도 구문 분석이 없으면 사람이 읽을 수있는 주석이 생성되지 않습니다.
다음을 남용 할 수 있습니다.
토큰 앞뒤에 중요하지 않은 공백이 허용됩니다. 공백은 문자 코드 (U + 0009), 줄 바꿈 (U + 000A), 캐리지 리턴 (U + 000D) 및 공백 (U + 0020) 중 하나 이상의 코드 포인트 시퀀스입니다.
해킹 된 방식으로이를 악용하여 주석을 추가 할 수 있습니다. 예를 들어 : 탭으로 주석을 시작하고 종료하십시오. base3에 주석을 인코딩하고 다른 공백 문자를 사용하여 주석을 표시하십시오. 예를 들어.
010212 010202 011000 011000 011010 001012 010122 010121 011021 010202 001012 011022 010212 011020 010202 010202
( hello base three
ASCII에서) 그러나 0 대신 공간을 사용하고 1은 줄 바꿈을 사용하고 2는 캐리지 리턴을 사용하십시오.
이것은 IDE를 플러그인하여 즉시 인코딩 / 디코딩하지 않는 한 읽을 수없는 많은 공백을 남겨 둡니다.
나는 명백한 이유 때문에 이것을 시도조차하지 않았으며 당신도 마찬가지입니다.
우리는 strip-json-comments
프로젝트에 사용 하고 있습니다. 그것은 다음과 같은 것을 지원합니다 :
/*
* Description
*/
{
// rainbows
"unicorn": /* ❤ */ "cake"
}
간단히 npm install --save strip-json-comments
다음과 같이 설치하고 사용하십시오.
var strip_json_comments = require('strip-json-comments')
var json = '{/*rainbows*/"unicorn":"cake"}';
JSON.parse(strip_json_comments(json));
//=> {unicorn: 'cake'}
json
는 이러한 타당성 주석을 포함하고 더 이상 유효한 JSON이 없습니다.
JSON은 자체적으로 주석을 허용하지 않습니다. 추론은 JSON을 사용할 수 있기 때문에, 완전히 어리석은 자신을 완전히 추론을 미연에 방지하는 의견을 생성, 및 부하 전혀 좋은 이유에 대한 파서 데이터 공간 정확히 같은 결과 그들은이 같은 잠재적 인 문제로서, JSON 주석이 포함 된 파일.
주석을 사용
//
하거나 ( 예를 들어/* */
또는 사용하여) 주석을 넣으려고#
하면 JSON 구문에 엄격히 포함되지 않기 때문에 일부 파서가 실패합니다. 그러니 절대 그렇게 해서는 안됩니다 .
예를 들어 내 이미지 조작 시스템 이 이미지 표기법과 이미지 형식과 관련된 기본 형식 (코멘트) 정보를 저장했습니다 (아래쪽).
{
"Notations": [
{
"anchorX": 333,
"anchorY": 265,
"areaMode": "Ellipse",
"extentX": 356,
"extentY": 294,
"opacity": 0.5,
"text": "Elliptical area on top",
"textX": 333,
"textY": 265,
"title": "Notation 1"
},
{
"anchorX": 87,
"anchorY": 385,
"areaMode": "Rectangle",
"extentX": 109,
"extentY": 412,
"opacity": 0.5,
"text": "Rect area\non bottom",
"textX": 98,
"textY": 385,
"title": "Notation 2"
},
{
"anchorX": 69,
"anchorY": 104,
"areaMode": "Polygon",
"extentX": 102,
"extentY": 136,
"opacity": 0.5,
"pointList": [
{
"i": 0,
"x": 83,
"y": 104
},
{
"i": 1,
"x": 69,
"y": 136
},
{
"i": 2,
"x": 102,
"y": 132
},
{
"i": 3,
"x": 83,
"y": 104
}
],
"text": "Simple polygon",
"textX": 85,
"textY": 104,
"title": "Notation 3"
}
],
"imageXW": 512,
"imageYW": 512,
"imageName": "lena_std.ato",
"tinyDocs": {
"c01": "JSON image notation data:",
"c02": "-------------------------",
"c03": "",
"c04": "This data contains image notations and related area",
"c05": "selection information that provides a means for an",
"c06": "image gallery to display notations with elliptical,",
"c07": "rectangular, polygonal or freehand area indications",
"c08": "over an image displayed to a gallery visitor.",
"c09": "",
"c10": "X and Y positions are all in image space. The image",
"c11": "resolution is given as imageXW and imageYW, which",
"c12": "you use to scale the notation areas to their proper",
"c13": "locations and sizes for your display of the image,",
"c14": "regardless of scale.",
"c15": "",
"c16": "For Ellipses, anchor is the center of the ellipse,",
"c17": "and the extents are the X and Y radii respectively.",
"c18": "",
"c19": "For Rectangles, the anchor is the top left and the",
"c20": "extents are the bottom right.",
"c21": "",
"c22": "For Freehand and Polygon area modes, the pointList",
"c23": "contains a series of numbered XY points. If the area",
"c24": "is closed, the last point will be the same as the",
"c25": "first, so all you have to be concerned with is drawing",
"c26": "lines between the points in the list. Anchor and extent",
"c27": "are set to the top left and bottom right of the indicated",
"c28": "region, and can be used as a simplistic rectangular",
"c29": "detect for the mouse hover position over these types",
"c30": "of areas.",
"c31": "",
"c32": "The textx and texty positions provide basic positioning",
"c33": "information to help you locate the text information",
"c34": "in a reasonable location associated with the area",
"c35": "indication.",
"c36": "",
"c37": "Opacity is a value between 0 and 1, where .5 represents",
"c38": "a 50% opaque backdrop and 1.0 represents a fully opaque",
"c39": "backdrop. Recommendation is that regions be drawn",
"c40": "only if the user hovers the pointer over the image,",
"c41": "and that the text associated with the regions be drawn",
"c42": "only if the user hovers the pointer over the indicated",
"c43": "region."
}
}
JSON 항목을 부분으로 자르려면 "더미 주석"줄을 추가합니다.
{
"#############################" : "Part1",
"data1" : "value1",
"data2" : "value2",
"#############################" : "Part2",
"data4" : "value3",
"data3" : "value4"
}
{ "comment-001":"This is where you do abc...", "comment-002":"This is where you do xyz..." }
. 이름을 고유하게 유지하고 원하는 문자열 값을 추가 할 수 있습니다. 주석은 JSON의 일부가 아니므로 여전히 문제가됩니다. 또 다른 대안으로 JSON 앞뒤에 주석을 추가하지 말고 주석을 추가하지 않는 이유는 무엇입니까?