2010-03-14 104 views
2

我需要一個JavaScript中的隨機對象生成器,它生成具有不同字段和值的各種對象。任何想法,我可以找到這樣的工具?JavaScript中的隨機對象生成器

我需要生成具有各種複雜性的隨機對象。我的目標是使用JSON來序列化這些對象並測試我的應用程序http api。

+5

嗯......寫下來?或者說明你的需求,因爲它們對我來說非常具體。 – Ricket

+0

我需要生成具有各種複雜度的隨機對象。我的目標是使用JSON來序列化這些對象,然後測試我的應用程序http api。 – Gjorgji

+0

看到我的答案,它確實如你所說。 – 2010-03-14 22:16:12

回答

6
function createRandomObj(fieldCount, allowNested) 
{ 
    var generatedObj = {}; 

    for(var i = 0; i < fieldCount; i++) { 
     var generatedObjField; 

     switch(randomInt(allowNested ? 6 : 5)) { 

      case 0: 
      generatedObjField = randomInt(1000); 
      break; 

      case 1: 
      generatedObjField = Math.random(); 
      break; 

      case 2: 
      generatedObjField = Math.random() < 0.5 ? true : false; 
      break; 

      case 3: 
      generatedObjField = randomString(randomInt(4) + 4); 
      break; 

      case 4: 
      generatedObjField = null; 
      break; 

      case 5: 
      generatedObjField = createRandomObj(fieldCount, allowNested); 
      break; 
     } 
     generatedObj[randomString(8)] = generatedObjField; 
    } 
    return generatedObj; 
} 

// helper functions 

function randomInt(rightBound) 
{ 
    return Math.floor(Math.random() * rightBound); 
} 

function randomString(size) 
{ 
    var alphaChars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"; 
    var generatedString = ''; 
    for(var i = 0; i < size; i++) { 
     generatedString += alphaChars[randomInt(alphaChars.length)]; 
    } 

    return generatedString; 
} 

它會用X參數創建一個obj,所有的參數都是一個整數,浮點數,字符串,布爾值或空值。
我剛剛做到了:B

+0

將它的工作,如果我一個字段中設置的值是一個對象: 問題o [getRandomString(8)] = createRandomObj(5) 我想獲得..產生更復雜的對象是這樣的: {」一個「:3,」b「:{」c「:4,」d「:5}} – Gjorgji

+0

哦,當然,我會在一會兒執行它:) – 2010-03-15 01:37:01

+0

看到第二個參數:),如果它是真的,它會使子對象使用相同的函數和參數:) – 2010-03-15 01:39:37