Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitb6cdae2

Browse files
committed
Date and "empty objects" that are not objects.
Add support for Date objects and "empty objects" that are not objects.Uses obj.toString() to display the object.
1 parent34c2c7b commitb6cdae2

File tree

1 file changed

+38
-35
lines changed

1 file changed

+38
-35
lines changed

‎src/json.human.js‎

Lines changed: 38 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -59,14 +59,15 @@
5959
vartoString=Object.prototype.toString,
6060
prefixer=makePrefixer("jh"),
6161
p=prefixer,
62-
ARRAY=1,
63-
BOOL=2,
64-
INT=3,
65-
FLOAT=4,
66-
STRING=5,
67-
OBJECT=6,
68-
FUNCTION=7,
69-
UNK=99,
62+
ARRAY=2,
63+
BOOL=4,
64+
INT=8,
65+
FLOAT=16,
66+
STRING=32,
67+
OBJECT=64,
68+
SPECIAL_OBJECT=128,
69+
FUNCTION=256,
70+
UNK=1,
7071

7172
STRING_CLASS_NAME=p("type-string"),
7273
STRING_EMPTY_CLASS_NAME=p("type-string")+" "+p("empty"),
@@ -109,7 +110,10 @@
109110
if(isArray(obj)){
110111
returnARRAY;
111112
}elseif(obj===Object(obj)){
112-
returnOBJECT;
113+
if(obj.constructor===Object){
114+
returnOBJECT;
115+
}
116+
returnOBJECT|SPECIAL_OBJECT
113117
}else{
114118
returnUNK;
115119
}
@@ -120,50 +124,49 @@
120124

121125
varresult,container,key,keyNode,valNode,len,childs,tr,value,
122126
isEmpty=true,
127+
isSpecial=false,
123128
accum=[],
124129
type=getType(data);
125130

126131
// Initialized & used only in case of objects & arrays
127132
varhyperlinksEnabled,aTarget,hyperlinkKeys;
128133

129-
switch(type){
130-
caseBOOL:
134+
if(type===BOOL){
131135
varboolOpt=options.bool;
132136
container=document.createElement('div');
133137

134-
if(boolOpt.showImage){
138+
if(boolOpt.showImage){
135139
varimg=document.createElement('img');
136140
img.setAttribute('class',BOOL_IMAGE);
137141

138142
img.setAttribute('src',
139-
''+(data ?boolOpt.img.true :boolOpt.img.false));
143+
''+(data ?boolOpt.img.true :boolOpt.img.false));
140144

141145
container.appendChild(img);
142146
}
143147

144-
if(boolOpt.showText){
148+
if(boolOpt.showText){
145149
container.appendChild(data ?
146150
sn("span",BOOL_TRUE_CLASS_NAME,boolOpt.text.true) :
147151
sn("span",BOOL_FALSE_CLASS_NAME,boolOpt.text.false));
148152
}
149153

150154
result=container;
151-
break;
152155

153-
caseSTRING:
156+
}elseif(type===STRING){
154157
if(data===""){
155158
result=sn("span",STRING_EMPTY_CLASS_NAME,"(Empty Text)");
156159
}else{
157160
result=sn("span",STRING_CLASS_NAME,data);
158161
}
159-
break;
160-
caseINT:
162+
}elseif(type===INT){
161163
result=sn("span",INT_CLASS_NAME,data);
162-
break;
163-
caseFLOAT:
164+
}elseif(type===FLOAT){
164165
result=sn("span",FLOAT_CLASS_NAME,data);
165-
break;
166-
caseOBJECT:
166+
}elseif(type&OBJECT){
167+
if(type&SPECIAL_OBJECT){
168+
isSpecial=true;
169+
}
167170
childs=[];
168171

169172
aTarget=options.hyperlinks.target;
@@ -199,21 +202,21 @@
199202
childs.push(tr);
200203
}
201204

202-
if(isEmpty){
205+
if(isSpecial){
206+
result=sn('span',STRING_CLASS_NAME,data.toString())
207+
}elseif(isEmpty){
203208
result=sn("span",OBJ_EMPTY_CLASS_NAME,"(Empty Object)");
204209
}else{
205210
result=scn("table",OBJECT_CLASS_NAME,scn("tbody",'',childs));
206211
}
207-
break;
208-
caseFUNCTION:
212+
}elseif(type===FUNCTION){
209213
result=sn("span",FUNCTION_CLASS_NAME,data);
210-
break;
211-
caseARRAY:
214+
}elseif(type===ARRAY){
212215
if(data.length>0){
213216
childs=[];
214217
varshowArrayIndices=options.showArrayIndex;
215218

216-
aTarget=options.hyperlinks.target;
219+
aTarget=options.hyperlinks.target;
217220
hyperlinkKeys=options.hyperlinks.keys;
218221

219222
// Hyperlink of arrays?
@@ -227,16 +230,18 @@
227230
keyNode=sn("th",ARRAY_KEY_CLASS_NAME,key);
228231
value=data[key];
229232

230-
if(hyperlinksEnabled&&typeof(value)==="string"){
233+
if(hyperlinksEnabled&&typeof(value)==="string"){
231234
valNode=_format(value,options,key);
232-
valNode=scn("td",ARRAY_VAL_CLASS_NAME,linkNode(valNode,value,aTarget));
235+
valNode=scn("td",ARRAY_VAL_CLASS_NAME,
236+
linkNode(valNode,value,aTarget));
233237
}else{
234-
valNode=scn("td",ARRAY_VAL_CLASS_NAME,_format(value,options,key));
238+
valNode=scn("td",ARRAY_VAL_CLASS_NAME,
239+
_format(value,options,key));
235240
}
236241

237242
tr=document.createElement("tr");
238243

239-
if(showArrayIndices){
244+
if(showArrayIndices){
240245
tr.appendChild(keyNode);
241246
}
242247
tr.appendChild(valNode);
@@ -248,10 +253,8 @@
248253
}else{
249254
result=sn("span",ARRAY_EMPTY_CLASS_NAME,"(Empty List)");
250255
}
251-
break;
252-
default:
256+
}else{
253257
result=sn("span",UNKNOWN_CLASS_NAME,data);
254-
break;
255258
}
256259

257260
returnresult;

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp