Das Notes Forum

Domino 9 und frühere Versionen => ND9: Entwicklung => Thema gestartet von: Tode am 20.10.17 - 19:13:23

Titel: Frage zu <xe:viewJsonService>
Beitrag von: Tode am 20.10.17 - 19:13:23
Das ist eine XPage- Control, um eine View im Json- Format anzuzeigen. Die hat die Property systemColumns.

Lasse ich systemColumns WEG, dann zeigt er mir alle System- Columns an. Gebe ich z.B. 0 an, dann zeigt er mir eben die System Column 0 (in dem Fall die NoteID) an.
Was muss ich tun, damit er mir GAR KEINE systemColumns rendert, sondern nur die tatsächlich vorhandenen Columns?

ein systemColumns=false gibt es nicht, und Doku finde ich auch keine...
Titel: Re: Frage zu <xe:viewJsonService>
Beitrag von: Tode am 23.10.17 - 09:44:21
ups, falsches Unterforum... bitte verschieben in "Entwicklung"...
Titel: Re: Frage zu <xe:viewJsonService>
Beitrag von: HH am 23.10.17 - 11:50:55
@entryid scheint immer generiert zu werden, auch wenn man einen Leerstring bei systemColumns eingibt:
Code
<xe:this.systemColumns><![CDATA[#{javascript:""}]]></xe:this.systemColumns>

Man könnte versuchen diese Werte client-seitig zu entfernen.

Ich verwende aber statt dessen i.d.R. customRestService und generiere mit die Daten dann z.B. wie folgt:
Code
	@SuppressWarnings("unchecked")
	public String getEntitiesAsJson( ArrayList<Person> persons ) {
		JSONArray jArray = new JSONArray() ;
		try {
			for( Integer i = 0 ; i < persons.size() ; i++ ) {
				jArray.add( this.getEntityAsJsonObject( persons.get(i))) ;
			}
		} catch (Exception e) {
			this.logger.logError( e) ;
		}
		return jArray.toJSONString() ;
	}
	
	@SuppressWarnings("unchecked")
	private JSONObject getEntityAsJsonObject( Person p ) {
		JSONObject jObj = new JSONObject() ;
		try {
			jObj.put( "id", p.getId() ) ;
			jObj.put( "lastname", p.getLastname() ) ;
			jObj.put( "firstname", p.getFirstname() ) ;
			jObj.put( "praefix", p.getPraefix() ) ;
			jObj.put( "suffix", p.getSuffix() ) ;
		} catch (Exception e) {
			this.logger.logError( e) ;
		}
		return jObj ;
	}

Das ist relativ schnell gemacht und recht flexibel.

Gruß
Hubert
Titel: Re: Frage zu <xe:viewJsonService>
Beitrag von: Tode am 23.10.17 - 12:52:46
Ja, das ist natürlich eine Möglichkeit. Ich habe jetzt aber mal beim Consumer meiner Daten angefragt, ihn stört das zusätzliche Attribut nicht, deshalb lasse ich es erst mal so. Deinen Code werde ich mir trotzdem für zukünftige Anforderungen mal merken. Danke!